PR

MySQL 集合演算子 unionの使い方

スポンサーリンク
この記事は約3分で読めます。

集合演算子 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技術ブログへ

コメント

タイトルとURLをコピーしました