條件寫在on后面和where后面 on條件與where條件的區別

on條件與where條件的區別是:
1、on條件是在生成臨時表時使用的條件 , 它不管on中的條件是否為真 , 都會返回左邊表中的記錄 。where條件是在臨時表生成好后 , 再對臨時表進行過濾的條件 。這時已經沒有leftjoin的含義(必須返回左邊表的記錄)了 , 條件不為真的就全部過濾掉 。
2、在on后面加條件僅適合用于left join (right join未測 , inner join與where類似) 。
3、不考慮where條件下 , left join 會把左表所有數據查詢出來 , on及其后面的條件僅僅會影響右表的數據(符合就顯示 , 不符合全部為null) 。
4、where后面加條件與左連接本身無關 , 影響的是連接產生后的數據 。
【條件寫在on后面和where后面 on條件與where條件的區別】5、所以左連接關注的是左邊的主表數據 , 不應該把on后面的從表中的條件加到where后 , 這樣會影響原有主表中的數據 。

    相關經驗推薦