此語句返回錯誤00920-無效關係運算符。基於另一個表中的多個值刪除行
我確定這是我的語法,但我沒有看到它。如果任何代碼可以查看它,並指出我得到它的權利,我將不勝感激。
謝謝
DELETE FROM TABLE15 p
WHERE (p.item_id, p.product_id) IN
(SELECT S.item_id, S.product_id)
FROM TABLE14 S);
此語句返回錯誤00920-無效關係運算符。基於另一個表中的多個值刪除行
我確定這是我的語法,但我沒有看到它。如果任何代碼可以查看它,並指出我得到它的權利,我將不勝感激。
謝謝
DELETE FROM TABLE15 p
WHERE (p.item_id, p.product_id) IN
(SELECT S.item_id, S.product_id)
FROM TABLE14 S);
你的括號內是狡猾......
DELETE FROM TABLE15 p
WHERE (p.item_id, p.product_id) IN
(SELECT S.item_id, S.product_id
FROM TABLE14 S
);
您需要刪除附加一個。由於額外的括號,錯誤是由於in
未被正確解析而引起的。
謝謝.... 16小時後必須是模糊的vsion ....只是沒有看到它。 –
試試這個:
DELETE FROM table15 p
WHERE (p.item_id IN (SELECT S.item_id
FROM table14 S))
OR ((p.product_id IN (SELECT S.product_id
FROM table14 S)));
在這種情況下,根據'item_id'和'product_id'的任何單個值刪除行,但問題的意圖是根據item_id和product_id的現有組合刪除。我不會低估它,因爲這是一個公平的嘗試,但我認爲它不符合OP的意圖。 –
選擇行末尾的大括號是否是拼寫錯誤? – Stefan
P.S.,我投票結束,因爲這實際上是您代碼中的一個錯誤;對未來的用戶並不真正有用。 – Ben