いつもお世話になってます。
タイトルの通りなのですが、SQLを触れたばかりなので、DELETE文の条件をどう書くか悩んでいます。
以下のテーブルAとテーブルBがあるとします。
テーブルA
NO CODE GROUP
---+------+-------
001 A20 AAAA
002 B10 AABB
003 B20 BBBB
004 A20 AABB
005 A10 BBBB
006 B10 AAAA
テーブルB
NO ID COMMENT
---+------+--------
001 100 ******
002 100 ******
003 120 ++++++
004 140 <<<<<<
005 170 \\\\\\
006 110 %%%%%%
007 120 !!!!!!
DELETEの条件として行いたいのは
テーブルAのCODEが'A20'で、
テーブルAのその条件のNOとテーブルBのNOが同じものの時、条件に合ったテーブルBのレコードを削除したいものです。
例のテーブルでいえば、テーブルAはそのままで、テーブルBが次のようになるようにしたいです。
テーブルB
NO ID COMMENT
---+------+--------
002 100 ******
003 120 ++++++
005 170 \\\\\\
006 110 %%%%%%
007 120 !!!!!!
分かりづらい説明かと思いますが、よろしくお願いします。
不明点があれば、補足にて追加していきます。
No.1ベストアンサー
- 回答日時:
こういうSQL文でどうでしょうか?
動作確認なしなので、間違いがあったら再度考えます・・。
また、質問の意味を勘違いしているようでしたら、指摘してください。
DELETE FROM テーブルB
WHERE NO IN ( SELECT NO FROM テーブルA
WHERE CODE = 'A20')
意味的には、
テーブルAからCODEがA20のもののNOを取得して、テーブルBのNOが、そのNOのいずれかに該当したらDELETEするという処理になると思います。(多分)
この回答への補足
希望の通り結果ができました!
WHERE句のあとに ~ IN というのもありましたね^^;
SQLは奥が深い…
ありがとうございました。
早速の回答、ありがとうございます。
そうです。SELECT文で表示するなら…
SELECT B.* FROM テーブルA A,
テーブルB B
WHERE A.CODE = 'A20'
AND A.NO = B.NO
としました。
こちらで実際にやってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ROWNUMでUPDATEをしたいのです...
-
SQL、2つのテーブルで条件一致...
-
テーブル名をカラムとして取得...
-
SQLで違うテーブルの値を比較し...
-
特定のカラムが更新されたとき...
-
SQL 複数テーブルのupdate
-
update文で改行を入れる
-
SQLでSUMなどの関数でデータが...
-
OracleのSQLで同テーブルのカラ...
-
distinct をexistsに変換する
-
テーブルやカラムの物理名のネ...
-
PLSQLのNumber型の初期化
-
sqlplusで表示が変なので、出力...
-
UPDATE文
-
INSERT文のSELECT部分の更新
-
SQL*LoaderでCSVから指定した列...
-
SQL(oracle)でご助言いただきた...
-
日付の古い順番に削除したいの...
-
SQLについて教えて下さい。 主...
-
数値をNUMBER型にするかCHAR型...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
update文で改行を入れる
-
ROWNUMでUPDATEをしたいのです...
-
sqlplusで表示が変なので、出力...
-
SQL 複数テーブルのupdate
-
SQL*LoaderでCSVから指定した列...
-
SQLでSUMなどの関数でデータが...
-
SQLで違うテーブルの値を比較し...
-
カラム位置変更
-
UPDATE文
-
件数とデータを同時に取得する...
-
特定のカラムが更新されたとき...
-
Oracle(オラクル)で、日付時刻...
-
半角英数文字の抽出がしたい。
-
数値をNUMBER型にするかCHAR型...
-
DELETE文とロックについて
-
Oracleのview、synonymをCOMPIL...
-
SQL(oracle)でご助言いただきた...
-
SELECT文で指定桁数分抽出する...
おすすめ情報