首页/数据/SQL 速查/LEFT JOIN 左外连接
本包目录(311 条)

LEFT JOIN 左外连接

保留左表全部行,右表没有匹配时用 NULL 补齐;适合“主表 + 可选关联信息”的查询。

SQL 速查数据更新于 2026-10-12
保留侧左表全部行
未匹配右表列全部为 NULL
判断未匹配用右表 NOT NULL 的列(通常是主键)IS NULL

示例

示例
SELECT u.id, u.name, o.id AS order_id, o.amount
FROM users AS u
LEFT JOIN orders AS o ON o.user_id = u.id
ORDER BY u.id, o.id;

找出没有订单的用户

找出没有订单的用户
SELECT u.id, u.name
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE o.id IS NULL;
判断未匹配要选右表 NOT NULL 的列(通常是主键),否则“匹配到但该列为空”的行会被误算。

易错点

  • Oracle 风格的 (+) 隐式外连接在 MySQL、PostgreSQL 中不成立,必须写 LEFT JOIN ... ON
  • 用可空列 IS NULL 判断未匹配会把“匹配但列为空”的行一起算进来

数据来源与参考

  • MySQL 8.0 Reference Manual · LEFT JOIN
  • PostgreSQL Documentation · LEFT OUTER JOIN
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌