佐藤です。フリーランスになって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 |