這個簡單的SQL外連接有什麼問題?左外連接B如何返回比A中更多的行?
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不是整個關鍵? – Jens 2014-10-28 12:04:06
+1我會檢查。這怎麼能解釋310176? – Drux 2014-10-28 12:04:48
如果b只是鍵的一部分,它可能是A中的一行在B中引用了更多的行,並且如果在您的示例1中有A參考的記錄12,0 ... B中的行,則可以得到結果。 – Jens 2014-10-28 12:07:50