8

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

4

7 回答 7

23

看看杰夫阿特伍德的优秀:

SQL 连接的可视化解释

马克

于 2009-11-26T14:42:02.540 回答
4

维基百科有一篇关于该主题的不错的长文章 [这里]( http://en.wikipedia.org/wiki/Join_(SQL))

但基本上:

  • 内连接返回所有表中存在满足 where 子句的行的结果
  • 外连接返回结果,其中至少有一个表中存在满足 where 子句的行
于 2009-11-26T14:41:25.147 回答
2

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

在 OUTER JOIN 中,结果表可能有空列。外部联接可以是 LEFT 或 RIGHT

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

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

于 2009-11-26T14:42:33.367 回答
0

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

OUTER JOIN返回任一表中存在的所有行

于 2009-11-26T14:41:02.137 回答
0

如果记录出现在两个表中,则内部联接仅返回联接行。取决于方向的外连接将显示一个表中的所有记录,并与它们连接的表中的数据连接,其中存在相应的行

于 2009-11-26T14:43:19.493 回答
0

使用数学集,

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

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

于 2009-11-26T15:26:57.410 回答
-1

假设一个包含客户和订单的示例模式:

  • INNER JOIN:仅检索带有订单的客户。

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

  • RIGHT OUTER JOIN:检索所有有或没有匹配客户记录的订单。

有关更详细的信息,请参阅内部和外部联接 SQL 语句

于 2009-11-26T14:43:03.253 回答