我很難理解這兩個查詢之間的區別。不要給出相同的結果,只是結果略有不同。這兩個查詢不是相同的,但只是倒過來?你可以在最後一個子查詢中看到不同之處。這兩個查詢的區別(存在不類似而不存在的類似)
SELECT *
FROM[dbo].[MNO International AB$Item] t1
WHERE
t1.[Item Type] = 0
AND (
NOT EXISTS(SELECT * FROM [dbo].[MNO International AB$Item Cross Reference] t2 WHERE t2.[Item No_] = t1.No_ AND t2.[Cross-Reference Type No_] = 'EAN13' AND t2.[Cross-Reference No_] <> '' AND t2.[Cross-Reference Type] = 3)
OR t1.[Statistics Group] = 0
) --Result: 2178
AND NOT EXISTS
(SELECT * FROM [dbo].[MNO International AB$Master] t2
WHERE t1.[Master No_] = t2.No_
AND t2.[Collection No_] LIKE 'NEW-NOS'
)
其他查詢
SELECT *
FROM[dbo].[MNO International AB$Item] t1
WHERE
t1.[Item Type] = 0
AND (
NOT EXISTS(SELECT * FROM [dbo].[MNO International AB$Item Cross Reference] t2 WHERE t2.[Item No_] = t1.No_ AND t2.[Cross-Reference Type No_] = 'EAN13' AND t2.[Cross-Reference No_] <> '' AND t2.[Cross-Reference Type] = 3)
OR t1.[Statistics Group] = 0
) --Result: 2178
AND EXISTS
(SELECT * FROM [dbo].[MNO International AB$Master] t2
WHERE t1.[Master No_] = t2.No_
AND t2.[Collection No_] NOT LIKE 'NEW-NOS'
)
你有一個環境下複製呢? – Dane
「不要給出相同的結果」 - 你也不應該指望它們。這可能有點麻煩,但請看維基百科的存量定量的否定部分(https://en.wikipedia.org/wiki/Existential_quantification#Negation)。查詢一個是「有* no *項目,比如'NEW-NOS'」,查詢二是「至少有一個*項目*不像* NEW-NOS'」 –
第二個查詢包含一個「不像「條款而不是」贊「,所以它不是倒置。如果該條款是「喜歡」,那麼第二個將是第一個的倒置。 – Takarii