首页/数据/数据库速查/LEFT / RIGHT JOIN 外连接
SQL 语法52 条

LEFT / RIGHT JOIN 外连接

保留一侧全部行,另一侧无匹配补 NULL;判断是否存在匹配时要在 WHERE 里排除 NULL 或改用 NOT EXISTS。

数据库速查数据更新于 2026-10-12
用途保留单侧全集
语法A LEFT JOIN B ON …
方向LEFT 保留左表,RIGHT 保留右表

左连接找无订单用户

左连接找无订单用户
SELECT u.id, u.name
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE o.id IS NULL;

统计每用户订单数(含 0)

统计每用户订单数(含 0)
SELECT u.id, COUNT(o.id) AS cnt
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id;
左连接后在 WHERE 里对右表列加非空条件(如 o.status='paid')会把左连接退化成内连接,条件应放 ON 里。

易错点

  • LEFT JOIN 的过滤条件放 WHERE 还是 ON 语义不同,是最高频的错用点
  • RIGHT JOIN 可读性差,工程上通常重排为 LEFT JOIN

数据来源与参考

  • MySQL 8.0 Reference Manual: JOIN Clause

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌