C210 結果の結合(UNION)

複数の検索結果を統合し、1つの結果にするにはUNIONまたはUNION ALLを用います。今回はUNION、UNION ALLについて紹介します。

結果の結合方法

basketballテーブル

idplayer_id
11001
21002
31004
41005

tennisテーブル

idplayer_id
11002
21003
31004
41006

UNION

重複を含めず、(重複があったら除外)に抽出します。

SQL
SELECT  カラム名  FROM  テーブル名1

UNION

SELECT  カラム名  FROM  テーブル名2

下記のように記載することで、どちらかに所属をしているplayer_idを重複せずに抽出することができます。

SQL
SELECT  player_id  FROM  basketball
UNION
SELECT  player_id  FROM  tennis;

抽出結果

SQL
1001
1002
1004
1005
1003
1006

player_id1002、1004の2名はどちらにも含まれていますが、重複せずに抽出されています。

UNION ALL

重複を含めて、(重複があったら除外せず)に抽出します。

SQL
SELECT  player_id  FROM  テーブル名1

UNION ALL

SELECT  player_id  FROM  テーブル名2

下記のように記載することで、どちらかに所属をしているplayer_idを重複を含めて抽出することができます。

SQL
SELECT  player_id  FROM  basketball
UNION ALL
SELECT  player_id  FROM  tennis;

抽出結果

SQL
1001
1002
1004
1005
1002
1003
1004
1006

player_id1002、1004の2名はどちらにも含まれているので、重複して抽出されています。

エンジニアからのアドバイス

UNIONは重複しているかを確かめてから抽出が行われるため、UNION ALLよりも処理が重くなる傾向があります。UNIONは必要な際にのみ用いましょう。

---