- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL削除条件について)
SQL削除条件について
このQ&Aのポイント
- 初歩的な質問で大変恐縮ですが、ご教授願います。以下の二つのテーブルがある場合、1回のSQLで削除する方法を教えてください。
- IDが一致していて、削除フラグが全て「1」である場合、Aテーブルを削除する。としたいのですが、半日悩んでもうまくいきません。
- どうかお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
select a.id from a natural join b where flag = 1 and a.id not in (select id from a where flag <> 1); で,削除対象のIDであるBとGが抽出されるので,これを, delete from a where a.id in (……); に組み込めば良いのではないでしょうか。 私の手元にあるDBソフトは同一テーブルを2重にネストしてdelete対象にできないので,別途viewを作る必要がありそうなのですが。
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
回答No.1
環境がないので試していませんが以下のSQLで如何でしょう DELETE FROM A INNER JOIN B ON A.ID=B.ID WHERE A.削除フラグ=1
質問者
お礼
ご回答ありがとうございます。 現在手元に実機がありませんので、明日試させて頂きます。 まだまだ勉強不足ですね。精進します。
お礼
返答が遅れて申し訳ありません。 現在手元に実機がありませんので、明日試させて頂きます。 大変勉強になりました。ありがとうございます。