MySQL 集合演算子 unionの使い方

集合演算子 union

集合演算子 unionは 1つのテーブルにデータ内容が異なるテーブルのデータを足して1つのテーブルを作ります。

イメージ的には、テーブル1の後にテーブル2を追加すると考えた方がいいと思います。

以下の表のデータのようにテーブル1とテーブル2の列名は同じですが、データ内容が異なっていますね。その同じ列名を使ってデータをプラス(追加)するのに union句を使用します。

union句を使って以下の表から出力できる列名は以下の4項目です。

・email

・姓(last_name)

・名(first_name)

・性別(gender)

・ベースとなるselectの結果に、unionの後に記載したselectの結果を足し算します。

・テーブル1とテーブル2で列数をあわせる必要があります。
・同じ位置にあるカラムのデータ型は一致している必要があります。

テーブル1

id email last_name first_name gender role
1 xxxxxxxx 吉岡 朝香 2 2
2 xxxxxxxx 山中 光良 1 3
3 xxxxxxxx 吉川 フミヤ 1 3
4 xxxxxxxx 岩瀬 そら 2 1
5 xxxxxxxx 松元 1 3

テーブル2

id email last_name first_name gender birthday prefecture_id
1 xxxxxxxx 紫咲 朝陽 2 1978-03-12 1
2 xxxxxxxx 沢村 啓介 1 1973-08-27 14
3 xxxxxxxx 阿部 淳子 2 2000-02-15 28
4 xxxxxxxx 佐古 翔太 1 1995-01-29 25
5 xxxxxxxx 宮里 ひとり 1 1996-06-13 28

構文:select 列1,…from テーブル1
union select 列2,…from テーブル2

select 	
    email,
    last_name,
    first_name,
    gender
from 
    テーブル1
union 
select
    email,
    last_name,
    first_name,
    gender
from 
    テーブル2;

上記の場合重複行は削除されます。重複を出力したい時は union all を使用します。

すると2つのデータを足すことができます。

使用できる句・where,group by,having,order by

ただし、order byだけは、全体の中で最後に一度しか記述できません。

にほんブログ村 IT技術ブログへ

スポンサーリンク
スポンサーリンク
SNSフォローボタン

フォローする

シェアする

  • このエントリーをはてなブックマークに追加
スポンサーリンク
スポンサーリンク