内连接与equi-join相同吗?

use*_*816 39 sql oracle join

你能告诉我内连接和等连接是否相同?

小智 44

一般而言,"内连接"与"等连接"不同.

'equi-join'表示使用相等运算符或等效运算符连接表.如果它仅使用相等性(其他人可能不同意),我仍然会将外连接称为"等连接".

'inner join''outer join'相对,并确定在没有匹配值时如何连接两个set.


Clo*_*ble 29

我发现这篇文章,猜测它回答了你的问题.

他们是无关的.

几乎每个连接都是等值连接,因为匹配行的条件基于两个值的相等性 - 每个连接的表中有一个值.这就是使它成为等值的原因:ON条件是平等.这包括内连接和所有三种类型的外连接.

另一方面,内部联接可以基于相等性来匹配行,或者完全基于某些其他条件.如果它不是等值连接,那么它通常被称为θ连接,尽管准确地说,等同连接只是可能的θ连接之一; 其他theta连接使用小于,小于或等于等作为比较运算符.

阅读整篇文章


Shu*_*pta 12

答案是否定的,这里是简短而简单的读者。

内连接可以在连接条件中使用等号 (=) 和其他运算符(如 <、>、<>)。

等值联接在联接条件中仅具有相等 (=) 运算符。

Equi join可以是内连接、左外连接、右外连接

  • 等连接如何是左外连接或右外连接? (2认同)

Osy*_*Osy 10

答案是不.

equi-join用于使用显式operator =匹配两个表中的两列:

例:

select *
  from table T1, table2 T2
  where T1.column_name1 = T2.column_name2
Run Code Online (Sandbox Code Playgroud)

内部联接用于获取两个表之间的交叉积,组合两个表中的所有记录.要获得正确的结果,可以使用等连接或一个自然连接(表之间的列名必须相同)

使用equi-join(显式和隐式)

select *
  from table T1 INNER JOIN table2 T2
  on T1.column_name = T2.column_name

select *
  from table T1, table2 T2
  where T1.column_name = T2.column_name
Run Code Online (Sandbox Code Playgroud)

或使用自然连接

select *
  from table T1 NATURAL JOIN table2 T2
Run Code Online (Sandbox Code Playgroud)

HTH


Luc*_*ini 8

简而言之:等联接是内部联接的一种可能类型

有关更深入的说明:

内部联接是一种联接,它仅返回满足特定条件的联接表中的行。这个条件可能是相等的,这意味着我们将有一个等值连接;如果条件不是平等的条件-可能是一个不平等的条件,可能大于,小于,等于,等等。-我们有一个nonquiqui-join,更精确地称为theta-join。

如果我们不希望满足这些条件,则可以使用外部联接(返回所有表的所有行),左联接(返回左表的所有行,仅匹配右表),右联接(右的所有行)返回的表格,仅与左侧表格匹配)。