當前位置:趣味科普網>經驗>

on條件與where條件的區別

經驗 閱讀(5.28K)

on條件與where條件的區別

on條件與where條件的區別是:

1、on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。where條件是在臨時表生成好後,再對臨時表進行過濾的條件。這時已經沒有leftjoin的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

2、在on後面加條件僅適合用於leftjoin(rightjoin未測,innerjoin與where類似)。

3、不考慮where條件下,leftjoin會把左表所有資料查詢出來,on及其後面的條件僅僅會影響右表的資料(符合就顯示,不符合全部為null)。

4、where後面加條件與左連線本身無關,影響的是連線產生後的資料。

5、所以左連線關注的是左邊的主表資料,不應該把on後面的從表中的條件加到where後,這樣會影響原有主表中的資料。