• ベストアンサー

異なるテーブルのレコード削除

オラクル初心者です。宜しくお願いします。 AAA、BBB、CCCというテーブルがあると仮定します。 画面から入力された値(ddd)をキーとして、CCCテーブルから該当するレコードをセレクト文で引っ張り、eeeという値を抜き出したとします。 そのeeeという値をキーにAAA、BBBテーブルのレコードを削除するにはどういうSQLを発行すればよろしいでしょうか? "delete from AAA, BBB where eee = (select eee from CCC where fff = ddd);" では駄目でした。 質問が下手でわかりにくいかもしれませんが、どうかご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

DELETE文1文では、1つのテーブルに対してしか操作できませんので、 DELETE文を2つ投入するか、PL/SQLブロックとして投入するかいずれかに なります。 (無名PL/SQLが投入できるミドルウエアと投入できないミドルウエアがあります)

pgBeginImo
質問者

お礼

早速の回答ありがとうございます。 PL/SQLはわからないので2つのdelete文で削除しようと思います。 ありがとうございました!

その他の回答 (1)

  • mssine
  • ベストアンサー率24% (38/156)
回答No.1

delete from AAA, BBB <<<===複数テーブルはダメなんじゃないかなぁ where eee = <<<=== "="を in にする (select eee from CCC where fff = ddd);

pgBeginImo
質問者

お礼

inをつける方法もあるんですね。 またひとつ勉強になりました。ありがとうございます! やっぱり複数テーブルは無理ですか…(汗

関連するQ&A