【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サポートサイトです。