1.left join on剖析

1.舉個例子,就清楚了。兩個表tb_userstat_all,tb_userstat_imeiimsi_all
a

select * from tb_userstat_all as a left join tb_userstat_imeiimsi_all as b on a.sdate = b.sdate and b.sdate BETWEEN '20151222' and '20151225';

b

select * from tb_userstat_all as a left join tb_userstat_imeiimsi_all as b on a.sdate = b.sdate and a.sdate BETWEEN '20151222' and '20151225';

c

select * from tb_userstat_all as a left join tb_userstat_imeiimsi_all as b on a.sdate = b.sdate where a.sdate BETWEEN '20151222' and '20151225';

d

select * from tb_userstat_all as a left join tb_userstat_imeiimsi_all as b on a.sdate = b.sdate where b.sdate BETWEEN '20151222' and '20151225';

查詢結果是:

a:300條記錄

b:300條記錄

c:2條記錄

d:2條記錄

結論:

left join on後面的條件對主表不起作用。主表仍然會查詢出所有的記錄,但是 on 後面的條件  會對從表有影響。

where 後面跟的條件 是將連接查詢後的結果 進行篩選。


因此,根據需求靈活的運用 on  還是 where.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章