SQL中左連接on and條件和where條件執行先后順序


執行順序:先執行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后面的條件:則是對左連接出的臨時表數據進行過濾


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM