SQL の基本 | DML: データ操作言語 | INTERSECT

INTERSECT は UNION コマンドに似ており、2 つの SQL 文の結果を処理するために使用するコマンドである。2 つの違いは、UNION が基本的に OR であるのに対し、INTERSECT は AND に近い点である。UNION では、値が 1 つ目の文または 2 つ目の文に存在する場合、その値が選択されて出力される。INTERSECT では、値が 1 つ目の文と 2 つ目の文の両方に存在する場合にのみ選択される。UNION は和集合であり、INTERSECT は交差である。

INTERSECT 構文

INTERSECT コマンドは次のとおりである。

[SQL文1]
INTERSECT
[SQL文2];

INTERSECT の例

次の 2 つのテーブルがあるとする。

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

internet_sales テーブル

txn_date sales
Jan-07-2018 250
Jan-10-2018 535
Jan-11-2018 320
Jan-12-2018 750

ここで、どの日に店舗販売とインターネット販売の両方があるかを確認するために、次の SQL 文を使用できる。

SELECT txn_date FROM store_information
INTERSECT
SELECT txn_date FROM internet_sales;

SQL 構文の実行結果は次のとおりである。

txn_date
Jan-07-2018

INTERSECT コマンドでは、異なる値が 1 回だけ表示される点に注意する。