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