我正在嘗試使用 NOT IN 查詢,但將其應用于列值相同的成批行。
SELECT * FROM CHECKOUTS WHERE ProductId NOT IN (2345)將回傳 ProductName 為 Toy2 和 Toy3 的行,但我希望它不回傳 Toy2 b/c CheckoutId 與 Toy1 相同。
本質上,我希望 NOT IN 查詢在具有相同 CheckoutId 的成批行中運行。我希望它只回傳 Toy3,而不是回傳 Toy2 和 Toy3。
| 結帳ID | 產品編號 | 產品名稱 |
|---|---|---|
| 1234 | 2345 | 玩具1 |
| 1234 | 0987 | 玩具2 |
| 0123 | 8787 | 玩具3 |
這甚至可能嗎?我覺得我需要一個全新的查詢引數?
uj5u.com熱心網友回復:
您可以分兩步解決查詢,盡管它們可以組合在一個查詢中。第一步:找到那些你不想要的結帳ID。第二步:獲取沒有這些 id 的結帳記錄。
SELECT *
FROM CHECKOUTS
WHERE
CheckoutId NOT IN (
SELECT CheckoutId
FROM CHECKOUTS
WHERE ProductId IN (2345));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/507039.html
