Dru*_*rux 6 sql database sql-server outer-join
这个简单的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
Run Code Online (Sandbox Code Playgroud)
分别返回25766,1242和310176行.(这适用于Microsoft SQL Server 2012.)如何A left outer join B返回比存在更多的行A,特别是在这个维恩图的情况下?我想我犯的是一个愚蠢的错误但它是什么?
小智 14
当列b在表中不唯一时,可能会发生这种情况B.假设您有这些数据:
A B +---+ +---+---+ | b | | b | c | +---+ +---+---+ | 1 | | 2 | 1 | | 2 | | 2 | 2 | +---+ +---+---+
当你离开 - 加入A到B列上时b,你得到了
+-----+------+------+ | A.b | B.b | B.c | +-----+------+------+ | 1 | NULL | NULL | | 2 | 2 | 1 | | 2 | 2 | 2 | +-----+------+------+
这给在总三排,即使两个A和B只有每两行.
| 归档时间: |
|
| 查看次数: |
5253 次 |
| 最近记录: |