考慮有 2 個表,如下所示。
表格1:
| 單元 | SKU 編號 | 積極的 |
|---|---|---|
| 一種 | 1 | 是 |
| 乙 | 2 | 是 |
| C | 3 | 是 |
表 2:
| 單元 | SKU 編號 | 描述 |
|---|---|---|
| X | 4 | 蘋果 |
| 乙 | 2 | 芒果 |
| 是 | 5 | 葡萄 |
| z | 6 | 香蕉 |
我想B,2,Y通過參考表 2 中的列值Unit和SKU number匹配來從表 1 中洗掉記錄。
我嘗試使用以下查詢,但似乎沒有用
DELETE FROM table1
WHERE (Unit, SKU_Number) IN (SELECT Unit, SKU_Number FROM table2);
錯誤是
在預期條件的背景關系中指定的非布爾型別的運算式,靠近“,”
有人可以幫我理解我在這里做錯了什么或幫助我重寫 SQL 查詢以實作所需的目標嗎?
uj5u.com熱心網友回復:
您可以使用類似的邏輯存在:
DELETE
FROM table1 t1
WHERE EXISTS (SELECT 1 FROM table2 t2
WHERE t2.Unit = t1.Unit AND t2.SKU_Number = t1.SKU_Number);
uj5u.com熱心網友回復:
您可以嘗試使用此查詢,假設表 1是唯一的Unit:
DELETE FROM table1
WHERE table1.Unit IN (
SELECT table1.Unit
FROM table1
LEFT JOIN table2 ON table1.Unit = table2.Unit
AND table1.SKU_Number = table2.SKU_Number
)
如果 unit 不是唯一欄位,只需將其替換為唯一欄位或表 1的主鍵。
uj5u.com熱心網友回復:
您可以使用內部聯接進行洗掉:
DELETE t1
FROM table1 t1
INNER JOIN table2 t2
ON t1.unit=t2.unit and t1.SKU_Number = t2.SKU.Number
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457445.html
上一篇:如何查找日期名稱?
