比较内连接和外连接SQL语句

时间:2009-11-26 14:37:50

标签: sql inner-join outer-join

内连接和外连接有什么区别?这两种连接的确切含义是什么?

7 个答案:

答案 0 :(得分:23)

查看杰夫阿特伍德的出色表现:

A Visual Explanation of SQL Joins

马克

答案 1 :(得分:4)

维基百科有一篇关于[here](http://en.wikipedia.org/wiki/Join_(SQL))

主题的长篇文章

但基本上是:

  • 内部联接返回结果,其中有行满足所有表中的where子句
  • 外连接返回结果,其中有至少一个表中满足where子句的行

答案 2 :(得分:2)

使用INNER JOIN返回匹配的两个表中的所有行。即。在结果表中,所有行和列都将具有值。

在OUTER JOIN中,生成的表可能包含空列。外连接可以是LEFT或RIGHT

LEFT OUTER JOIN返回第一个表中的所有行,即使第二个表中没有匹配项。

RIGHT OUTER JOIN返回第二个表中的所有行,即使第一个表中没有匹配项也是如此。

答案 3 :(得分:0)

INNER JOIN返回两个表中存在的行

OUTER JOIN返回表

中存在的所有行

答案 4 :(得分:0)

如果记录显示在两个表中,则内部联接仅返回已连接的行。 根据方向的外部连接将显示来自一个表的所有记录,从它们连接的表中加入数据,其中存在相应的行

答案 5 :(得分:0)

使用数学集,

Inner Join is A ^ B;
Outer Join is A - B.

所以(+)是查询中的A面。

答案 6 :(得分:-1)

假设客户和订单的示例模式:

  • INNER JOIN:仅通过订单检索客户。

  • LEFT OUTER JOIN:检索有订单或没有订单的所有客户。

  • RIGHT OUTER JOIN:检索包含或不包含客户记录的所有订单。

有关更详细的信息,请参阅Inner and Outer Join SQL Statements