SQL中外连接的目的(或用例)是什么?

时间:2009-07-09 01:09:05

标签: sql join outer-join

外部联接是否仅用于开发人员的分析?我无法找到一个用例,说明为什么要将数据包含在两个或多个不相关或不匹配选择条件的表中。

8 个答案:

答案 0 :(得分:17)

示例用例是生成一个显示所有客户及其购买的报告。也就是说,甚至显示没有购买任何东西的顾客。如果您进行普通的客户加入和购买,报告将仅显示至少购买一次的客户。

答案 1 :(得分:6)

这是一个非常好的示例列表,除了Jeff Atwood - A Visual Explanation of SQL Joins之外,他可以直观地显示SQL连接的新表示。

答案 2 :(得分:3)

“不匹配”情况对可选数据很有用。某些行存在某些行,但不适用于其他行。

答案 3 :(得分:2)

OUTER JOIN旨在解决您希望从主表中选择一组记录的情况,这些记录可能包含也可能没有包含在辅助表中的相关记录。

INNER联接将从列表中省略任何未在辅助表中表示的主记录。任何OUTER JOIN都保证所有合格主记录的可见性。

答案 4 :(得分:1)

也许您有一个用户表和一个与之相关的地址表,因为您的用户可能选择不输入地址,或者他们可能有几个(运送,街道,邮政等)。如果您想列出所有用户,但也显示拥有它们的用户的地址,则必须使用外部联接作为地址表。

答案 5 :(得分:1)

假设您有一个用于用户的表和一个用于资格的表,您希望进行查询以获得具有其资格的所有用户(如果有的话)。在这种情况下,您将使用外部联接来获取所有用户和具有资格的用户。内部联接只会为您提供具有资格的用户。

答案 6 :(得分:1)

外连接和内连接之间的区别主要在于外连接保留连接表中的每个记录,无论连接谓词是否匹配。因此,用例需要围绕知道“缺失的东西”,例如。未购买的客户或缺少个人信息的会员。

答案 7 :(得分:1)