LEFT JOIN 左连接

LEFT JOIN 以左表为基准,左表每一行都会出现在结果里;右表对不上的,相关列就是 NULL。想统计「每个用户下了几单,没下单的也算」,非它莫属。

LEFT JOIN 左连接要点

LEFT JOIN 左连接示例

						-- 列出所有用户,以及他们的订单(没下单的订单列为 NULL)
						SELECT u.user_name, o.order_id, o.amount
						FROM user u
						LEFT JOIN orders o ON u.user_id = o.user_id;

						-- 找出从来没下过单的用户
						SELECT u.user_name
						FROM user u
						LEFT JOIN orders o ON u.user_id = o.user_id
						WHERE o.order_id IS NULL;
避坑提醒:LEFT JOIN 后在 WHERE 里对右表字段加筛选(例如要求右表某列非 NULL),外连接会悄悄退化成内连接。
LEFT JOIN 左连接 · JOIN 多表连接 知识卡片
卡片 04 / 08 · JOIN 多表连接(1080×1440 速查卡片)

JOIN 多表连接知识点