gpt4 book ai didi

SQL JOIN - WHERE 子句与 ON 子句

转载 作者:行者123 更新时间:2023-12-03 03:53:41 24 4
gpt4 key购买 nike

读完后,这不是 Explicit vs Implicit SQL Joins 的重复项。答案可能相关(甚至相同),但问题不同。

<小时/>

有什么区别以及每个内容应该包含什么?

如果我正确理解该理论,查询优化器应该能够互换使用两者。

最佳答案

它们不是同一件事。

考虑这些查询:

SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
WHERE Orders.ID = 12345

SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
AND Orders.ID = 12345

第一个命令将返回订单号 12345 的订单及其行(如果有)。
第二个将返回所有订单,但只有订单 12345 才会有与其关联的任何行。

对于INNER JOIN,子句实际上是等价的。然而,仅仅因为它们在功能上相同,即产生相同的结果,并不意味着这两种子句具有相同的语义。

关于SQL JOIN - WHERE 子句与 ON 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com