このクエリは、削除する必要があるオフィスのタプルを正確に返します。
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
しかし、私は本当にこれを解決する方法がわかりません..
どんな助けでも大歓迎です!