作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
select * from gifts INNER JOIN sentGifts ON gifts.giftID = -6ren">
以下语句给出相同的结果(一个使用 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
?谢谢。
最佳答案
ON
子句定义表之间的关系。
WHERE
子句描述您感兴趣的行。
很多时候你可以交换它们并且仍然得到相同的结果,但是左外连接并不总是这样。
- If the
ON
clause fails you still get a row with columns from the left table but with nulls in the columns from the right table.- If the
WHERE
clause fails you won't get that row at all.
关于sql - 在 SQL/MySQL 中,join 语句中的 "ON"和 "WHERE"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2722795/
我是一名优秀的程序员,十分优秀!