我有兩個表,我試圖通過一個字段進行聯接,並且它在兩個查詢中給出了不同的結果,這些結果應該會給出相同的結果。查詢是:具有不同結果的SQL查詢
SELECT * FROM tblCustomer tca
WHERE tca.PhoneNumber IN(
SELECT ts.SubscriptionNumber FROM sub.tblSubscription ts
WHERE ts.ServiceTypeID=4
AND ts.SourceID=-1
)
和
SELECT tca.*
FROM sub.tblSubscription ts
inner JOIN tblCustomer tca
ON ts.SubscriptionNumber = tca.PhoneNumber
WHERE ts.ServiceTypeID = 4
AND ts.SourceID = -1
這怎麼可能?
有什麼區別?關係是一對一還是另一個? –
你能告訴我們數據和表格定義嗎? – SQLGuru
'IN'是一個半連接,由於'1..n'關係不會帶來重複。它比內部加入更有效,然後用'DISTINCT'刪除重複項。 –