執行順序:先執行on and條件,再執行where條件
具體是:首先根據on and條件過濾出滿足條件的右側表記錄,然后根據關聯字段,左側表再與過濾出的右側表記錄進行連接,
滿足關聯字段相等,則返回左側表和右側表字段信息;若不滿足,則返回左側表字段信息,右側表字段則顯示NULL。
連接出的結果則存入臨時表中。最后where條件是對臨時表中的數據進行過濾。
左連接:Left join,以左側表為主,不管on條件是否滿足條件,左側表的所有記錄都會返回。
換句說:on and后面的條件對左側表沒有過濾作用,即使加上對左側表的過濾,也不起作用。
on后面的條件對右側表的過濾起作用。where條件則對左連接后的臨時表數據進行篩選。
以例子說明:
select * from A left join B
on A.ID = B.ID and B.NAME = '連接' and A.NAME = ‘左連接’
where NAME = '左連接'
on and后面的條件:B.NAME對B表有過濾作用,A.NAME對A表不起過濾作用
where后面的條件:則是對左連接出的臨時表數據進行過濾