假設有兩種表:test_on_position表和address表,address表存放地址,test_on_position存放會員及其經常使用的地址,數據以下:3d
address表:code
test_on_position表:blog
SELECT * FROM test_on_position LEFT JOIN address ON test_on_position.address = address.id WHERE test_on_position.address IS NOT NULL
運行結果:it
SELECT * FROM test_on_position LEFT JOIN address ON test_on_position.address = address.id AND test_on_position.address IS NOT NULL
運行結果:io
當條件放在on後面時,不管on條件的真假,都會返回左表的值;test
當條件放在where後面時,只有知足條件的記錄會返回。im
SELECT * FROM test_on_position INNER JOIN address ON test_on_position.address = address.id AND test_on_position.address IS NOT NULL
運行結果:d3
SELECT * FROM test_on_position INNER JOIN address ON test_on_position.address = address.id WHERE test_on_position.address IS NOT NULL
運行結果:數據
不管條件放在哪裏,都只會返回知足條件的結果。db