一句话核心:哪边是左表、哪边是右表,谁就保留全部数据
语法顺序:
A LEFT JOIN B→ A 是左表;A RIGHT JOIN B→ A 是右表
1. 左连接 LEFT JOIN(LEFT OUTER JOIN)
保留左表所有行,匹配右表符合条件的数据;匹配不到的右表字段填 NULL
-- A全部保留,B匹配上才带出,没匹配B字段为null
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;
示例: A 表:
B 表:
左连接结果:
2. 右连接 RIGHT JOIN(RIGHT OUTER JOIN)
保留右表所有行,匹配左表符合条件的数据;匹配不到的左表字段填 NULL
-- B全部保留,A匹配上才带出,没匹配A字段为null
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;
沿用上面的表,右连接结果:
如果 B 有多条、A 没有对应记录,A 侧就是 null。
3. 关键对比表
✅ 开发习惯:大部分场景优先用左连接,少用右连接,可读性更好,不容易搞反表顺序。
补充和内连接对比快速回顾
INNER JOIN:只保留两边能匹配上的数据,两边不匹配的都丢掉
LEFT JOIN:左表全留
RIGHT JOIN:右表全留
本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。
原文链接
欢迎访问