on條件與where條件的區(qū)別是:
1、on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經(jīng)沒有l(wèi)eftjoin的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。
2、在on后面加條件僅適合用于left join (right join未測,inner join與where類似)。
3、不考慮where條件下,left join 會把左表所有數(shù)據(jù)查詢出來,on及其后面的條件僅僅會影響右表的數(shù)據(jù)(符合就顯示,不符合全部為null)。
4、where后面加條件與左連接本身無關(guān),影響的是連接產(chǎn)生后的數(shù)據(jù)。
5、所以左連接關(guān)注的是左邊的主表數(shù)據(jù),不應(yīng)該把on后面的從表中的條件加到where后,這樣會影響原有主表中的數(shù)據(jù)。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com