LEFT JOIN保留左表所有记录,右表无匹配时字段为NULL;适用于查询用户及部门信息(含未分配部门的用户),统计登录时间或检查外键缺失,通过WHERE IS NULL可找出无关联记录的数据。
在 MySQL 中,LEFT JOIN(左连接)用于从左表(主表)中返回所有记录,即使右表中没有匹配的记录。如果右表中没有匹配项,结果中对应字段会显示为 NULL。
例如,有两个表:
你想查出所有用户及其对应的部门名称,包括那些没有分配部门的用户。
me, departments.dept_name
FROM users
LEFT JOIN departments ON users.department_id = departments.id;结果会包含:
LEFT JOIN 常用于以下情况:
注意:如果只想看“没部门”的用户,可以在后面加 WHERE 过滤:
WHERE departments.id IS NULL这能帮你找出数据不一致或缺失引用的情况。
基本上就这些。LEFT JOIN 的关键是记住“左表全保留”,配合 ON 条件灵活使用就行。