• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PL/SQLのDELETE文について)

PL/SQLのDELETE文について

このQ&Aのポイント
  • PL/SQLのDELETE文の書き方について質問しています。
  • 削除条件が複雑なDELETE文の例を示しており、正しい書き方を知りたいとしています。
  • TABLE1を削除する際の条件としてTABLE2のTENSUが0であり、かつTABLE3が存在しないという条件を設定したいとしています。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

PL/SQLというより、単純なSQLですね。 DELETE TABLE1 WHERE TABLE1.ID in (select TABLE2.ID FROM TABLE WHERE TABLE2.TENSU=0 AND TABLE2.ID Not in (SELECT TABLE3.ID TABLE3 WHERE TABLE3.ID=TABLE2.ID ) ) でしょうかね? 実行確認せずに記述してますので間違ってたらごめんなさい。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

すみません。一部訂正します。 DELETE TABLE1 WHERE TABLE1.ID in (select TABLE2.ID FROM TABLE WHERE TABLE2.TENSU=0 AND TABLE2.ID Not in (SELECT TABLE3.ID TABLE3 ) ) 通常の数式のルールと同じく、括弧の中から処理されます。 Deleteの条件文(select table2.id以降)でテストしてみて OKならdelete文を追加してください。 なお、3テーブルともIDにINDEXを作成した方が速いかな?

laertes_h
質問者

お礼

早速の回答、ありがとうございます! INを使わないといけなかったんですね・・・。 SQLもあまりやったことないので。 これを参考に、PG作ってみたら、できました。 ホントにありがとうございました(^^)