【发布时间】:2014-12-23 19:51:50
【问题描述】:
这个简单的 SQL 外连接有什么问题?
select count(*) from A -- 25766
select count(*) from B -- 1242
select count(*) from A left outer join B on A.b = B.b -- 310176
分别返回 25766、1242 和 310176 行。 (这是针对 Microsoft SQL Server 2012 的。)A left outer join B 如何返回比A 中存在的行更多的行,尤其是给定this 维恩图?我想我犯了一个愚蠢的错误,但这是什么?
【问题讨论】:
-
会不会是b列不是整个key?
-
+1 我会检查的。这如何解释 310176?
-
如果 b 只是键的一部分,它可能是 A 中的一行引用 B 中的更多行,如果在您的示例中,A 的 1 条记录引用 12,0... 行B 你得到你的结果。
-
@Jens 我想这与 hvd 的答案相同,对吧?
标签: sql sql-server database outer-join