MySQL - 在 Left Join 中使用 On 和 Where 的區別

left join:返回左表中的所有記錄以及右表中連接字段與左表相等的記錄,會生成一張臨時表

on:是對右表進行過濾的條件,左表將返回所有的行,即只作用於右表

where:是對連接後生成的臨時表進行過濾的條件,即只作用於連接後的表

過程:以左表的所有的行爲基準,先與右表在 on 條件過濾後的結果集做連接,然後再在連接而成的臨時表上進行 where 條件的過濾

右表,如果是要篩選後才連接,應該把過濾條件放在 on 後面;如果是要連接後再篩選,應該把過濾條件放在 where 後面

左表,如果是要篩選後才連接,可以先做子查詢再連接;如果是要連接後再篩選,直接把條件放在 where 後面

發佈了234 篇原創文章 · 獲贊 53 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章