外连接查询

左连接

查询的结果为两个表匹配到的数据和左表特有的数据。对于右表中不存在的数据使用null填充。

语法:主表 left join 从表 on 连接条件 or 从表 right join 主表 on 连接条件 查询结果是一样的。左连接比较常用

最小示例(LEFT JOIN)

SELECT *
FROM a
LEFT JOIN b ON a.id = b.a_id;

含义:以 a 为主表,a 的每一行都会出现在结果中;如果 b 找不到匹配行,b 的列会是 NULL。

一个常见坑:把外连接写成了内连接

当你在 WHERE 里对右表字段进行条件过滤时,可能会把原本保留 NULL 的行过滤掉,结果看起来像“内连接”。

思路是:

右连接

查询的结果为两个表匹配到的数据和右表特有的数据。对于左表中不存在的数据使用null填充。

实务建议

关联:连接查询 / 内连接查询 / 空值判断