【SQL】 UNION演算子の使い方(和集合を求める)

UNION演算子は、以下で使用できます。
  ORACLE   MS-SQL  MS-Access 
UNION演算子 : 書式
SELECT文 UNION [ALL] SELECT文
UNION演算子 : 解説
UNION演算子は、集合演算の和を求める関数です。複数のSELECT文による問合せ結果の、和集合を取り出す演算を行うことができます。
UNION演算子だけを指定すると、重複を取り除いた和集合を返します。しかしALLキーワードを指定すると重複を削除しない和集合を返します。記述としては、複数のSELECT文をUNION演算子でつなぐだけです。
「商品A」表と「商品B」表からすべてのデータを取り出すSQLを、UNION演算子だけでつなぎ、重複を取り除いた和集合を求めてみます。

UNION演算子の前後のSELECT文に、OrderBy句 を入れるとエラーになる場合があるので、注意が必要です。
UNION演算子 : 使用例
SQL文 
SELECT * FROM 商品A UNION SELECT * FROM 商品B;
SELECT * FROM 商品A UNION SELECT * FROM 商品B;
実行結果
 
| 名前 | 
|---|
| 画面のないテレビ | 
| 角の固い豆腐 | 
| 割れない卵 | 
| 光らない電球 | 
| 時の卵 | 
| 柄のない包丁 | 
表:商品A
| 名前 | 
| 割れない卵 | 
| 角の固い豆腐 | 
| 時の卵 | 
| 柄のない包丁 | 
表:商品B
| 名前 | 
| 割れない卵 | 
| 時の卵 | 
| 光らない電球 | 
| 画面のないテレビ | 
UNION演算子 : 使用例 (ALL)
UNION演算子にALLキーワードを指定して、「商品A」表と「商品B」表の重複データを削除しないで、すべてのデータを求めてみます。
 
SQL文 
SELECT * FROM 商品A UNION ALL SELECT * FROM 商品B;
SELECT * FROM 商品A UNION ALL SELECT * FROM 商品B;
実行結果
 
| 名前 | 
|---|
| 割れない卵 | 
| 角の固い豆腐 | 
| 時の卵 | 
| 柄のない包丁 | 
| 割れない卵 | 
| 時の卵 | 
| 光らない電球 | 
| 画面のないテレビ | 
UNION と UNION ALL の違い
| UNION | 2つの表の重複を削除して合体する | 
| UNION ALL | 合体する2つの表の重複を削除しない | 
関連リンク
演算子一覧メニュー

SQLリファレンス > 演算子
演算子によって列に対する様々な演算が行えます。このページは、使用できる演算子の一覧表です。いちれべ.comは、オラクル、MS-SQL Server、MS-Access で使用可能か一目でわかるのが特徴のSEサポートサイトです。

