| 用途 | 保留单侧全集 |
|---|---|
| 语法 | 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 里。