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 回だけ表示される点に注意する。