【问题标题】:Difference between RIGHT & LEFT JOIN vs RIGHT & LEFT OUTER JOIN in SQL [duplicate]SQL中RIGHT和LEFT JOIN与RIGHT和LEFT OUTER JOIN之间的区别[重复]
【发布时间】:2011-03-12 03:38:40
【问题描述】:

结果有什么区别:

  1. 右连接和右外连接
  2. 左连接和左外连接?

你能通过一些例子解释一下吗?

【问题讨论】:

  • 内连接和外连接(包括在此页面上)再次滥用维恩图,请参阅我对重复问题的评论。

标签: sql join left-join outer-join right-join


【解决方案1】:

RIGHT JOINRIGHT OUTER JOIN 之间没有区别。两者都是一样的。这意味着LEFT JOINLEFT OUTER JOIN 是相同的。

Visual Representation of SQL Joins

【讨论】:

  • 这是我用于连接的新 goto 图像。
  • 这张图片可能是向某人解释不同类型连接之间差异的最佳/最快方式。很好的发现。
  • 这很有趣。 (n00b 警告)那你为什么需要左右连接呢?为什么不直接在查询中反转主表和连接表的位置并使用一个连接方向?
  • 因为有时您将超过 2 个表连接在一起,这样您就可以更灵活地选择写出查询的方式。
  • 我删除了图片;根据 CodeProject 许可证,The Articles discussing the Work published in any form by the author may not be distributed or republished without the Author's consent. 除非您有作者使用此图片的权限,否则您不能将其添加到您的问题中。
【解决方案2】:

SQL Join 很好的解释:

参考:link

【讨论】:

  • 没有名字
【解决方案3】:

结果有什么区别:

右连接和右外连接

没有区别。

左连接和左外连接?

没有区别。

简单地说,OUTER 关键字是可选的。您可以在不影响结果集的情况下包含或省略它。

【讨论】:

  • 这是在哪里记录的?
【解决方案4】:

这是一个非常好的Visual Explanation 连接,通常由我们自己的 Jeff Atwood 完成。右外连接和右连接一样,左连接和左外连接也一样。

【讨论】:

  • 他在自己的 cmets 中否认了该帖子。请参阅我对维恩图滥用问题(和该帖子)的评论。
  • 我找不到您的评论。我不确定“否认”是我会选择的词。很明显,维恩图式的解释并没有涵盖几个重要的案例。
  • 对不起,我没有看到我预期的 208 条评论。但我期望它说的是我的其他 cmets 所说的,请参阅我对这里问题的评论。
  • 你好像没有注意我的cmets实际上说了什么,就是人们没有注意维恩图帖子实际上说的是什么。例如:圆圈表示 tableA 和 tableB,但在最慈善的解释下,它们包含表 A 左连接表 B 和表 A 右连接表 B 中的行值。 Jeff 的评论(#33)包括“任何导致比你最初开始的行更多的东西都绝对破坏了整个维恩图的概念”——这就是否定。此外,他比他想象的要错,因为当没有更多的行时它们也会崩溃。
猜你喜欢
  • 2019-09-03
  • 2013-03-10
  • 2013-05-02
  • 2014-01-07
  • 2012-02-27
  • 1970-01-01
  • 2020-03-07
相关资源
最近更新 更多