【发布时间】:2019-03-27 17:54:11
【问题描述】:
我已经阅读了 20 多篇类似标题的帖子,但未能找到答案,如果有答案,请提前致歉。
我一直相信
select * FROM A LEFT JOIN B on ON A.ID = B.ID
相当于
select * FROM A LEFT JOIN B on ON B.ID = A.ID
但今天被告知“既然你有左连接,你必须将它作为 A = B,因为翻转它将充当内连接。
这是真的吗?
【问题讨论】:
-
否 .. A.ID = B.ID 或 B.ID = A.ID 是相同的 .. 如果更改表的顺序,则查询更改 ... FROM A LEFT JOIN B 是与 FROM B LEFT JOIN A 不同.. 因为集合涉及更改
-
投票箭头鼠标悬停文本地址研究。您支持或反对他们的主张或支持或反对他们主张的论点是什么? (为什么要阅读帖子而不是左连接和内连接的权威参考定义?)
-
“因为”引出了这个问题。他们没有给出一个合理的论点——从最初的假设到明显的基本有效逻辑重新排列的一系列真理。他们对左连接和内连接的定义有何吸引力? (甚至,它们运行了什么 1 说明执行?)每个连接的定义只涉及为表的交叉连接的每一行评估一个 on 条件整体,并且不受翻转的影响。 PS 了解什么是左连接返回:行内连接加上由空值扩展的不匹配左表行。作为左连接的一部分,始终知道您想要什么样的内连接。
标签: sql outer-join