- ベストアンサー
異なるテーブルのレコード削除
オラクル初心者です。宜しくお願いします。 AAA、BBB、CCCというテーブルがあると仮定します。 画面から入力された値(ddd)をキーとして、CCCテーブルから該当するレコードをセレクト文で引っ張り、eeeという値を抜き出したとします。 そのeeeという値をキーにAAA、BBBテーブルのレコードを削除するにはどういうSQLを発行すればよろしいでしょうか? "delete from AAA, BBB where eee = (select eee from CCC where fff = ddd);" では駄目でした。 質問が下手でわかりにくいかもしれませんが、どうかご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DELETE文1文では、1つのテーブルに対してしか操作できませんので、 DELETE文を2つ投入するか、PL/SQLブロックとして投入するかいずれかに なります。 (無名PL/SQLが投入できるミドルウエアと投入できないミドルウエアがあります)
その他の回答 (1)
- mssine
- ベストアンサー率24% (38/156)
回答No.1
delete from AAA, BBB <<<===複数テーブルはダメなんじゃないかなぁ where eee = <<<=== "="を in にする (select eee from CCC where fff = ddd);
質問者
お礼
inをつける方法もあるんですね。 またひとつ勉強になりました。ありがとうございます! やっぱり複数テーブルは無理ですか…(汗
お礼
早速の回答ありがとうございます。 PL/SQLはわからないので2つのdelete文で削除しようと思います。 ありがとうございました!