0
此查詢返回我需要刪除的辦公元組。如何在子查詢中使用delete語句 - 錯誤1093?
SELECT id, reference FROM office o
WHERE o.id NOT IN
(SELECT c.office_id FROM Contract c WHERE office_id IS NOT NULL)
AND o.reference IN
(SELECT o.reference FROM Contract c JOIN office o ON c.office_id = o.id WHERE office_id IS NOT NULL);
但是,當我寫的查詢
DELETE FROM office
WHERE id NOT IN
(SELECT c.office_id FROM Contract c WHERE office_id IS NOT NULL)
AND reference IN
(SELECT o.reference FROM Contract c JOIN office o ON c.office_id = o.id WHERE office_id IS NOT NULL);
我有以下錯誤:#1093 - You can't specify target table 'office' for update in FROM clause
但我實在看不出如何解決這個..
任何幫助將不勝感激!
(回答感謝)隨着您的查詢,我現在有以下錯誤:#1248 - 每一個派生表必須有它自己的別名 – Reveclair
肯定。對不起,忘記了。我剛剛更新了答案。 YOu必須爲名稱命名每個子查詢 –
非常感謝! – Reveclair