为什么内连接和外连接都被称为?

时间:2014-11-30 09:00:13

标签: sql join

我理解内部和外部连接的工作。但在这种情况下,内在/外在的含义是什么?内联的内心是什么?外连接的外部是什么?

最诚挚的问候, 维沙尔

2 个答案:

答案 0 :(得分:6)

还有一个观点:

最早的连接简单实现之一使用嵌套循环。

  1. 对于内部联接,外部循环将迭代任何关系,内部循环将迭代另一个关系,并在连接列匹配时创建复合行。因此,输出行将在内部循环中创建并填充。因此,这被称为INNER JOIN。

  2. 当我们希望保留左侧关系\ table中的所有行时,外部循环将不得不在左表上进行迭代,并且不仅会在内部循环中添加行以匹配大小写,而且还会在用于非匹配情况的外循环(其中左表在右表中没有基于连接列的匹配行)。在这种情况下,左表需要转到外部循环,因此称为LEFT OUTER JOIN。

  3. 当我们想要保留右侧关系\ table中的所有行时,右表将需要进入外部循环,因此它被称为RIGHT OUTER JOIN。

  4. 当我们希望保留两个表的非匹配行时,在最简单的方法中,我们将有两个嵌套循环。一个嵌套循环将在外循环中保留表,而另一个嵌套循环在外循环中具有右表。因此,两个表都转到外部循环,因此它被称为FULL OUTER JOIN。

  5. 添加关于嵌套循环实现的论文的链接:http://www.cs.berkeley.edu/~brewer/cs262/3-selinger79.pdf

答案 1 :(得分:2)

内连接仅返回所有连接表中存在连接键的记录,或换句话说,它将返回包含在连接表的交集内的键的记录。键是 那个部分。外部联接将返回交叉点中的所有记录,以及外部交叉点的记录。

这里有一篇关于Stack Overflow主题的完整帖子:What is the difference between Left, Right, Outer and Inner Joins?

另一个:What is the difference between "INNER JOIN" and "OUTER JOIN"?

实际上,我认为你的问题是重复的。 ; - )

相关问题