3

The most common type of join is: SQL INNER JOIN (simple join). An SQL INNER JOIN return all rows from multiple tables where the join condition is met.

这就是W3Schools关于 Inner Join 的说法。我正在阅读 Korth 的数据库管理,其中一章是关于关系代数的。其中有一个Natural Join,在我有限的理解中,它与 Inner Join 相同。

有人可以告诉我两者之间是否有区别,或者它们是指同一事物的不同名称。

4

2 回答 2

6

自然连接是内连接的一种形式,其中连接隐含地跨越连接两侧匹配名称的所有列。

例如

Table A
abc int
def int
ghi varchar(20)

Table B
abc int
def int
jkl int

表 A 和 B 之间的自然连接与列abc和的内部连接相同def


无法用自然连接替换的内连接:

TableA
   inner join
TableB
   on
       TableA.Column1 = TableB.Column2 --Column names don't match

或者

TableA
   inner join
TableB
   on
       TableA.Column1 >= TableB.Column1 --Not equality
于 2013-09-11T14:41:25.640 回答
2

Natural Join 和 Inner Join 不是相同的命令。
Natural Join 是根据公共列的值相等而不在查询中输入条件来连接表......而 Inner Join 是根据查询中指定的条件连接表,可以是“=”或“>=” " 或 "<="....

自然加入:

tab1 自然连接 tab2;

这将自动检查公共列的值是否相等

内连接:

tab1 INNER JOIN tab2 ON(条件);

此外,NATURAL JOIN 在查询的输出中给出一次公共列,而 INNER JOIN 给出两个表的公共列

于 2015-09-12T13:35:23.177 回答