根据工作中经验总结出来 left join 常用的 使用注意点: A Left join B on A.id = B.id
第一种情况:
如果 A 表 的 id 存在 重复, B 表的 id 不存在 重复, 那么 select * from A Left join B on A.id = B.id, SQL 执行的结果 数据条数 和 A 表 保持一致;
第二种情况:
如果 A 表 的 id 不存在 重复, B 表的 id 不存在 重复, 那么 select * from A Left join B on A.id = B.id, SQL 执行的结果 数据条数 和 A 表 保持一致;
第三种情况:
如果 A 表 的 id 不存在 重复, B 表的 id 存在 重复, 那么 select * from A Left join B on A.id = B.id, SQL 执行的结果 数据条数 和 A 表 不保持一致,SQL出来的条数比A表数据多;
总结: A Left join B on A.id = B.id
1:不管 A表 id 重复不重复,只要 B 表 id 不重复,使用 left join 结果 准确;
2:如果B表 id 存在 重复,使用 A left join B 之前,务必 对 B 表 进行 id 的 distinct 或者 group by 操作,保证 B 表 的 id 在 执行 left join 之前, id 保持 唯一性; 否则,left join 出来的 结果是错误的。
原文:https://www.cnblogs.com/guodong1789/p/12071839.html