UNION, UNION ALL

複数クエリーの結果の和集合を取得します。
UNIONは重複する情報がない結果を、UNION ALLは重複を意識せず結果を取得します。

SELECT query_expression
UNION [ALL]
SELECT query_expression
ORDER BY expression

 

*
下記の2つのテーブルがあるとき…

社員マスタ

社員番号 名前 所属部署コード 役職コード
1 しゃちょさん 100 11
2 部長さん 200 12

 

社員マスタ2

社員番号 名前 所属部署コード 役職コード
2 部長さん 210 12
3 主任さん 220 13

 

*
社員番号, 名前 のカラムをSELECTして、UNION のSQLを実行したときには…

SELECT 社員番号, 名前 FROM 社員マスタ
UNION
SELECT 社員番号, 名前 FROM 社員マスタ2
ORDER BY 社員番号 DESC
;

結果

社員番号 名前
1 しゃちょさん
2 部長さん
3 主任さん

 

*
社員番号, 名前 のカラムをSELECTして、UNION のSQLを実行したときには…

SELECT 社員番号, 名前 FROM 社員マスタ
UNION ALL
SELECT 社員番号, 名前 FROM 社員マスタ2
ORDER BY 社員番号 DESC
;

結果

社員番号 名前
1 しゃちょさん
1 しゃちょさん
2 部長さん
3 主任さん

 

*
社員番号, 名前, 所属部署コード のカラムをSELECTして、UNION のSQLを実行したときには…

SELECT 社員番号, 名前, 所属部署コード FROM 社員マスタ
UNION
SELECT 社員番号, 名前, 所属部署コード FROM 社員マスタ2
ORDER BY 社員番号 DESC
;

結果

社員番号 名前 所属部署コード
1 しゃちょさん 100
2 部長さん 200
2 部長さん 210
3 主任さん 220