SQL UNION と UNION ALL 演算子の使用方法

SQL UNION と UNION ALL 演算子を利用することで、2 つ以上の SELECT ステートメントの結果をマージすることが可能になります。

複数のSELECT文の結果セットを1つの結果セットに統合して重複行を取り除くUNION演算子は、次のような構文になっています。

table1からcolumn1, column2, …を選択する

組合

SELECT column1, column2, … FROM テーブル名

UNION 演算子は、2つの SELECT 文が同じ列数と類似のデータ型を持つことを必要とします。

UNION ALL演算子は2つ以上のSELECT文の結果集合を結合して1つの結果集合にするものですが、重複した行は削除されません。その構文は次のとおりです。

テーブル1からcolum1、colum2、・・・を選択

UNION ALL

SELECT column1, column2, … FROM table2;

UNION 演算子を使用すると、2つのクエリから重複行が削除された結果が返るのに対し、UNION ALL 演算子を使用すると、2つのクエリの結果がすべて返り、重複行も含まれます。

たとえば、employeesとcustomersという2つのテーブルがあるとしましょう. これらのテーブル内にあるすべての人物の名前を取得するには、UNION演算子を使用できます:

社員から氏名を選択

組合

select name from customers;

重複した行も含めて、これらの 2 つのテーブルからすべての人名を取得する場合は、UNION ALL 演算子を使用できます。

employeesテーブルからname列を選択

UNION ALL

顧客のnameを取得します。

要約すると、UNION演算子は結果を結合して重複行を取り除き、UNION ALL演算子は結果を結合してすべての行を残します。

bannerAds