テーブルインストラクターがいて、給与が範囲内にあるレコードを削除したい直感的な方法は次のとおりです。
delete from instructor where salary between 13000 and 15000;
ただし、セーフモードでは、主キー(ID)を指定せずにレコードを削除することはできません。
だから私は次のSQLを書きます:
delete from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
ただし、エラーがあります。
You can't specify target table 'instructor' for update in FROM clause
私が書くとき私は混乱しています
select * from instructor where ID in (select ID from instructor where salary between 13000 and 15000);
エラーは発生しません。
私の質問は:
- このエラーメッセージは実際には何を意味し、なぜ私のコードが間違っているのですか?
- このコードを書き直してセーフモードで動作させる方法は?
ありがとう!
