片方のテーブルに存在したデータのみDELETEするSQLサンプルです。
このような場合は、EXISTS句を使うと簡単です。
サンプル
例として、TBL_B.CDと同じCDのデータをTBL_Aから削除します。
cd | name | price |
---|---|---|
001 | りんご | 150 |
002 | ぶどう | 500 |
003 | みかん | 50 |
004 | もも | 400 |
005 | かき | 200 |
cd | name |
---|---|
002 | 取り扱い中止 |
004 | 取り扱い中止 |
006 | 取り扱い中止 |
例)tbl_b.cdに存在するデータをtbl_aから削除する
1 2 3 4 |
DELETE tbl_a WHERE EXISTS( SELECT 'X' FROM tbl_b WHERE tbl_a.cd = tbl_b.cd ); |
(結果)
cd | name | price |
---|---|---|
001 | りんご | 150 |
003 | みかん | 50 |
005 | かき | 200 |
解説
- 002、004はtbl_bに存在するため削除されます。
- 006はtbl_aに存在しないため影響しません。