例如存在两张表结构
表结构1
表结构2
表一插入数据
表二插入数据
完成后A,B表数据如下:
语句一
select A.ID as AID, B.ID as BID from A left join B on A.ID = B.ID where B.ID<3
语句二
select A.ID as AID, B.ID as BID from A left join B on A.ID = B.ID and B.ID<3
语句一的查询结果
语句二的查询结果为:
从结果可见这两个语句存在差异,为什么会有差异的,比较适合我的理解是:
left join on where :是先left join 再 where
select * from A left join B on A.ID = B.ID and B.ID<3 :是先对B进行过滤再进行left joIn,再以A为主表,返回数据。相当于要对A表和B表联合展示,A为主表,B在关联前需要满足多个条件。
原文:https://www.cnblogs.com/SchrodingersCat/p/leftjoin.html