Natural Join和Inner Join有什么区别?

时间:2013-09-11 14:39:54

标签: sql

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的数据库管理,其中的一章是关系代数。在那里,有一个自然加入,在我有限的理解中,与Inner Join相同。

有人可以告诉我两者之间是否存在差异,或者他们是指同一事物的不同名称。

2 个答案:

答案 0 :(得分:6)

自然联接是内部联接的表单,其中联接隐含在联接两侧的所有匹配名称列中。

E.g。

Table A
abc int
def int
ghi varchar(20)

Table B
abc int
def int
jkl int

表A和表B之间的自然连接与列abcdef上的内连接相同。


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

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

答案 1 :(得分:2)

自然连接和内连接不是相同的命令 自然连接在公共列的值相等的基础上连接表而不在查询中键入条件......而内连接基于查询中指定的条件连接表,可以是“=”或“> =“或”< =“....

自然加入:

tab1 NATURAL JOIN tab2;

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

Iner加入:

tab1 INNER JOIN tab2 ON(条件);

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