下面的語句產生相同的結果(一個正在使用on
,和其他使用where
):在SQL/MySQL中,連接語句中的「ON」和「WHERE」有什麼區別?
mysql> select * from gifts INNER JOIN sentGifts ON gifts.giftID = sentGifts.giftID;
mysql> select * from gifts INNER JOIN sentGifts WHERE gifts.giftID = sentGifts.giftID;
我可以在左外的情況下,只看到加入尋找「無與倫比」的情況:
(找出從未被任何人發來的禮物)
mysql> select name from gifts LEFT OUTER JOIN sentgifts
ON gifts.giftID = sentgifts.giftID
WHERE sentgifts.giftID IS NULL;
在這種情況下,首先使用on
,然後where
。 on
是否先進行匹配,然後where
進行「次要」過濾?還是有更一般的規則使用on
與where
?謝謝。
非常相似http://stackoverflow.com/questions/2559194/difference-between-and-and-where-in-joins – 2010-04-27 16:08:36
這個問題有兩個更好的標題。 – ripper234 2010-08-30 20:08:22