SQL UNIONとUNION ALLのサンプル

SQLのUNIONとUNION ALLのサンプルです。

目次

UNION(重複行を出力しない)

select文  union  select文
  • 複数のselect文の結果を結合して表示します。
  • 重複行は出力されません。
  • 重複行を除く処理を行う分、負荷になります。重複行を除く必要がない場合は、union allを使用します。
  • 表示される項目名(ヘッダの部分)は、最初に記述したSQL文のselect句の項目名になります。
  • 最初のselect文と後のselect文のselect句のカラム数は同じである必要があります。

テストデータ

次の2つのテーブルがあるとします。

usersテーブル
user_id name
1 鈴木
2 田中
salesテーブル
user_cd item_no
1 A001
1 B001
99 D001

SQL文

上記テーブルに対してunionを使用してデータを抽出します

SELECT user_id,name FROM users
union
SELECT user_cd,item_no FROM sales;

2行目は、unionです。

結果

結果は、以下のとおりです。

user_id name
1 鈴木
2 田中
1 A001
1 B001
99 D001

上記2つのテーブルの行が表示されます。

 

UNION ALL (重複行を出力する)

select文  union  all  select文
  • 複数のselect文の結果を結合して表示します。
  • 重複行も出力します。

説明用のデータ

例として次のテーブルがあるとします。

usersテーブル
user_id name
1 鈴木
2 田中

SQL文

上記テーブルに対してunion allを使用してデータを抽出します

SELECT * FROM users
union all
SELECT * FROM users;

2行目は、union allです。

結果

結果は、以下のとおりです。

user_id name
1 鈴木
2 田中
1 鈴木
2 田中

重複して抽出されます。

unionにallをつけない場合

unionにallをつけない場合は、重複行を出力しません。

SELECT * FROM users
union
SELECT * FROM users;

結果は、以下のとおりです。

user_id name
1 鈴木
2 田中

関連の記事

SQL INSERT文のサンプル
SQL UPDATE文とDELETE文のサンプル
SQL 重複行を表示しないサンプル(distinct)
SQL 複数の行をまとめる(集約関数/group by/having)
SQL 外部結合のサンプル(left outer join/right outer join)
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL 内部結合のサンプル(inner join)
SQL 相関副問合せのサンプル

△上に戻る