Why is inner join and outer join so called?
我了解内部和外部连接的工作。但在这种情况下,"内部/外部"这个词的含义是什么?什么是内部连接?什么是外部连接?
顺祝商祺!毗沙尔
另一个观点:
join最早的简单实现之一使用了嵌套循环。
对于内部联接,外部循环将迭代任何关系,内部循环将迭代其他关系,并在联接列匹配时创建复合行。因此,输出行在内部循环中被创建和填充。因此,这称为内部联接。
当我们希望保留左侧relation able中的所有行时,外部循环将必须在左侧表上迭代,并且不仅在匹配事例的内部循环中添加行,而且在不匹配事例的外部循环中添加行(其中左侧表在基于联接列的右侧表中没有匹配行)。在这种情况下,左表需要转到外部循环,因此它被称为左外部联接。
当我们希望保留右边relation able中的所有行时,右边的表将需要进入外部循环,所以它被称为右外部联接。
当我们希望保留两个表中不匹配的行时,用最简单的方法,我们将有两个嵌套循环。一个嵌套循环在外循环中有左表,另一个嵌套循环在外循环中有右表。所以这两个表都指向外部循环,因此称为完全外部联接。
在本文中添加了有关嵌套循环实现的链接:http://www.cs.berkeley.edu/~brewer/cs262/3-selinger79.pdf
内部联接将只返回联接键存在于所有联接表中的记录,或者换句话说,它将返回键位于联接表交叉点内的记录。钥匙在里面。外部联接将返回交叉点中的所有记录以及交叉点外的记录。
这里有一个关于栈溢出的主题的彻底破坏的帖子:左、右、外部和内部连接之间有什么区别?
另一个问题是:"内部联接"和"外部联接"有什么区别?
实际上,我想你的问题是重复的。;-)