佐藤です。フリーランスになって11ヶ月が経ちました。
今月もSQL備忘録の続きを。
・EXISTS演算子
レコードが存在するかの条件判定。
SELECT * FROM [テーブル名A] WHERE EXISTS (サブクエリ)
テーブルAのレコード1件1件に対して
EXISTSの検索結果が存在するか判定して存在すればそのレコードは残し、
なければ除外する。
例:
SELECT * FROM goods WHERE EXISTS ( SELECT id FROM event WHERE goods.id = event.goods_id AND event.id = 1 ) |
【goods】
id | name |
1 | A |
2 | B |
3 | C |
4 | D |
【event】
id | goods_id |
1 | 1 |
1 | 2 |
1 | 4 |
2 | 2 |
2 | 4 |
【結果】
id | name |
1 | A |
2 | B |
4 | D |