select * from [tba] a left join [tbb] b on (a.col1=b.col1 and b.col2='a')--相当于select * from [tba] a left join (select * from [tbb] where b.col2='a') b on a.col1=b.col1
select * from [tba] a left join [tbb] b on (a.col1=b.col1) where b.col2='a'這樣等同於inner join ,因where有別名b的條件,沒去null
刚才迷迷糊糊写了个比较长的left语句,结果出来的条数怎么看都是inner join的结果
排查了半天才发现
是1楼和3楼的意思。下次要小心了。
语句执行顺序,where在on之后,where 对on之后的结果集进行了筛选,所以结果不一样。。
---我这样理解对吗?