mysql如何使用left join

LEFT JOIN保留左表所有记录,右表无匹配时字段为NULL;适用于查询用户及部门信息(含未分配部门的用户),统计登录时间或检查外键缺失,通过WHERE IS NULL可找出无关联记录的数据。

mysql如何使用left join

在 MySQL 中,LEFT JOIN(左连接)用于从左表(主表)中返回所有记录,即使右表中没有匹配的记录。如果右表中没有匹配项,结果中对应字段会显示为 NULL

语法结构

SELECT 列名 FROM 左表 LEFT JOIN 右表 ON 条件;

  • 左表:主表,所有数据都会被保留。
  • ON:指定两张表之间的关联条件,通常是外键关系。

例如,有两个表:

  • users(用户表):id, name, department_id
  • departments(部门表):id, dept_name

你想查出所有用户及其对应的部门名称,包括那些没有分配部门的用户。

使用示例

SELECT users.name, departments.dept_name FROM users LEFT JOIN departments ON users.department_id = departments.id;

结果会包含:

  • 所有用户的姓名
  • 有部门的用户显示部门名
  • 没有部门的用户对应 dept_name 为 NULL

适用场景

LEFT JOIN 常用于以下情况:

mysql如何使用left join

Upscalepics

在线图片放大工具

mysql如何使用left join44

查看详情 mysql如何使用left join

  • 统计每个用户最近一次登录时间(即使从未登录)
  • 列出所有订单及客户信息,包括未下单的客户(反过来用 RIGHT JOIN 或调整表顺序)
  • 检查外键缺失的数据,比如找出哪些用户指向了不存在的部门

注意:如果只想看“没部门”的用户,可以在后面加 WHERE 过滤:

WHERE departments.id IS NULL

这能帮你找出数据不一致或缺失引用的情况。

基本上就这些。LEFT JOIN 的关键是记住“左表全保留”,配合 ON 条件灵活使用就行。

相关标签:

mysql mysql NULL select

上一篇
下一篇