SQL の基本 | DML: データ操作言語 | EXISTS
EXISTS は、WHERE の条件で実行した結果が存在する場合に行を取得する。
EXISTS 構文
SELECT "フィールド名1"
FROM "テーブル名1"
WHERE EXISTS
(SELECT "フィールド名2" FROM "テーブル名2" WHERE "検索条件");
EXISTS の例
次の 2 つのテーブルがあるとき、East 地域にある店舗の情報を取得したい場合を考える。
store_information テーブル
| store_name | sales | txn_date |
|---|---|---|
| Los Angeles | 1500 | Jan-05-2018 |
| San Diego | 250 | Jan-07-2018 |
| Los Angeles | 300 | Jan-08-2018 |
| Boston | 700 | Jan-08-2018 |
geography テーブル
| region_name | store_name |
|---|---|
| East | Boston |
| East | New York |
| West | Los Angeles |
| West | San Diego |
East 地域にある店舗の情報を取得するには、次のようにする。
SELECT *
FROM store_information A1
WHERE EXISTS
(SELECT * FROM geography WHERE region_name = 'East' AND store_name = A1.store_name);
結果は次のとおりである。
| store_name | sales | txn_date |
|---|---|---|
| Boston | 700 | Jan-08-2018 |