集合演算子 union
集合演算子 unionは 1つのテーブルにデータ内容が異なるテーブルのデータを足して1つのテーブルを作ります。
イメージ的には、テーブル1の後にテーブル2を追加すると考えた方がいいと思います。
以下の表のデータのようにテーブル1とテーブル2の列名は同じですが、データ内容が異なっていますね。その同じ列名を使ってデータをプラス(追加)するのに union句を使用します。
union句を使って以下の表から出力できる列名は以下の4項目です。
・姓(last_name)
・名(first_name)
・性別(gender)
・ベースとなるselectの結果に、unionの後に記載したselectの結果を足し算します。
・テーブル1とテーブル2で列数をあわせる必要があります。
・同じ位置にあるカラムのデータ型は一致している必要があります。
・同じ位置にあるカラムのデータ型は一致している必要があります。
テーブル1
id | 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 | 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
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つのデータを足すことができます。
コメント