我對這兩個查詢的結果感到驚訝。我期待着兩者都一樣。我有兩個共享公共領域的表,但是沒有建立關係。該表(A
)具有字段EventID varchar(10)
,表(B
)具有字段XXNumber varchar(15)
。SQL INNER JOIN與在哪裏ID IN(...)不一樣的結果
來自表B
欄XXNumber
的值在表A
欄EventID
中引用。儘管XXNumber
可容納15個字符,但179K行數據中的任何一行都不超過10個字符。
所以要求是:
「以避免重複表B和表A中的條目,如果XXNumber包含在表A>‘事件ID’號碼,那麼它不應該算作」。
,看我有多少共同記錄有我第一次跑這個查詢 - 稱之爲查詢阿爾法」
SELECT dbo.TableB.XXNumber FROM dbo.TableB WHERE dbo.TableB.XXNumber in
(select distinct dbo.TableA.EventId FROM dbo.TableA)
結果是5322行
下面的查詢 - 稱之爲查詢三角洲它看起來像這樣:
SELECT DISTINCT dbo.TableB.XXNumber, dbo.TableB.EventId
FROM dbo.TableB INNER JOIN dbo.TableA ON dbo.TableB.XXNumber= dbo.TableB.EventId
哈斯返回4308行
0123。不應該得到的行數是否相同?
第一個查詢不會'SELECT',第二個'SELECT DISTINCT'。我會假設TableB.XXNumber中有重複的值。 –