【发布时间】:2010-12-20 17:09:16
【问题描述】:
内连接和外连接有什么区别?这两种join的具体含义是什么?
【问题讨论】:
标签: sql inner-join outer-join
内连接和外连接有什么区别?这两种join的具体含义是什么?
【问题讨论】:
标签: sql inner-join outer-join
INNER JOIN 返回两个表中都存在的行
OUTER JOIN 返回任一表中存在的所有行
【讨论】:
维基百科有一篇关于这个主题的不错的长文章 [这里](http://en.wikipedia.org/wiki/Join_(SQL))
但基本上:
【讨论】:
【讨论】:
您使用 INNER JOIN 从两个表中返回所有匹配的行。 IE。在结果表中,所有行和列都有值。
在 OUTER JOIN 中,结果表可能有空列。外连接可以是 LEFT 也可以是 RIGHT
LEFT OUTER JOIN 返回第一个表中的所有行,即使第二个表中没有匹配项。
RIGHT OUTER JOIN 返回第二个表中的所有行,即使第一个表中没有匹配项。
【讨论】:
假设一个包含客户和订单的示例模式:
INNER JOIN:仅检索具有订单的客户。
LEFT OUTER JOIN:检索所有有订单或无订单的客户。
RIGHT OUTER JOIN:检索所有有或没有匹配客户记录的订单。
【讨论】:
如果记录出现在两个表中,内连接只返回一个连接行。 取决于方向的外连接将显示一个表中的所有记录,并连接到存在相应行的连接表中的数据
【讨论】:
使用数学集,
Inner Join is A ^ B;
Outer Join is A - B.
所以 (+) 是您在查询中的 A 方。
【讨论】: