我有這個SQL查詢:SQL Server查詢,奇怪的行爲
SELECT UserChiamante.UserId as UserId
FROM Something
WHERE Something AND
UserChiamante.UserId = ChiamanteInterno.UtenteId
的結果是這樣的:
_________________
| UserId |
|_______________|
| 1008 |
|---------------|
| 1022 |
|---------------|
| 1032 |
|_______________|
而且它的確定。 但如果我更改查詢:
SELECT UserChiamante.UserId as UserId
FROM Something
WHERE Something AND
UserChiamante.UserId != ChiamanteInterno.UtenteId
我期待一個不同的結果,但我得到一些奇怪的結果是這樣的:
_________________
| UserId |
|_______________|
| 1008 |
|---------------|
| 1022 |
|---------------|
| 1032 |
|---------------|
| 1258 |
的ID 1258是OK的,因爲我沒有在ChiamateInterno這個ID表,但其他3個在ChiamateInterno表中(obv,你可以從查詢的第一個版本中看到)。
OBV「UtenteId」其「用戶ID」的外鍵
那麼,爲什麼這個紀錄被選中?
您的查詢語法錯誤。您必須提供完整的查詢以更好地理解問題。 –
您可以擴展'Something'和'Something'嗎? 您正在實現一個連接,並可能嘗試執行一個外連接,但是您幾乎可以得到一個笛卡爾產品,因爲每行將被另一個表中的幾乎所有其他行連接。 –