下面的语句产生相同的结果(一个正在使用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