INNER/LEFT/RIGHT JOIN ON與WHERE的區別

1.LEFT或RIGHT JOIN ON後面的過濾條件即便不成立也會返回左表或右表的所有記錄,若是要過濾掉不符合條件的數據,則要把過濾條件放在WHERE後面。blog

tab1:im


tab2:總結

過濾條件在ON後面:
數據

過濾條件在WHERE後面:查詢

結果是不一樣的img

2.INNER JOIN ON後面的過濾條件也能夠放在WHERE後面,效果相同。tab

過濾條件在ON後面:co

過濾條件在WHERE後面:360

結果相同ps

總結:對於LEFT/RIGHT JOIN參與的表的關聯操做,若是須要不知足鏈接條件的行也在查詢範圍內的話,就把鏈接條件放在ON後面,而不能放在WHERE後面,若是把鏈接條件放在了WHERE後面,那麼全部的LEFT/RIGHT操做將不起任何做用,對於這種狀況,它的效果就徹底等同於INNER鏈接。對於那些不影響選擇行的條件,放在ON或者WHERE後面就能夠。

相關文章
相關標籤/搜索