SQLのUNIONとは?複数の結果を結合する方法を解説!

この記事は約3分で読めます。
記事内に広告が含まれています。

UNIONとは?

SQLのUNIONは、複数のSELECT文の結果を1つの結果セットに結合するための演算子です。異なるテーブルや条件で抽出されたデータをまとめて表示したい場合に非常に便利です。

UNIONの基本的な使い方

SELECT カラム名1, カラム名2, ... FROM テーブル名1
UNION
SELECT カラム名1, カラム名2, ... FROM テーブル名2;
  • SELECT: 結合したいデータを抽出するSELECT文を記述します。
  • UNION: 複数のSELECT文の結果を結合するためのキーワードです。

UNIONのルール

  • カラム数とデータ型: 結合するSELECT文のカラム数とデータ型は一致している必要があります。
  • カラム名: 結合後のカラム名は、最初のSELECT文のカラム名が使用されます。

UNIONの使用例

例1:異なるテーブルのデータを結合

-- customersテーブルとemployeesテーブルから名前とメールアドレスを結合
SELECT name, email FROM customers
UNION
SELECT name, email FROM employees;

例2:異なる条件のデータを結合

-- productsテーブルから価格が1000円以上の商品とカテゴリが'家電'の商品を結合
SELECT product_name FROM products WHERE price >= 1000
UNION
SELECT product_name FROM products WHERE category = '家電';

例3:重複を排除する

UNIONは、デフォルトで重複するレコードを自動的に排除します。

-- customersテーブルとsuppliersテーブルから国名を結合(重複排除)
SELECT country FROM customers
UNION
SELECT country FROM suppliers;

UNION ALL:重複を含む結合

重複を排除せずに全てのレコードを結合したい場合は、UNION ALLを使用します。

-- customersテーブルとsuppliersテーブルから国名を結合(重複含む)
SELECT country FROM customers
UNION ALL
SELECT country FROM suppliers;

UNIONの注意点

  • パフォーマンス
    大量のデータを結合する場合、UNIONはパフォーマンスに影響を与える可能性があります。
  • ORDER BY
    UNIONで結合した結果を並び替えたい場合は、最後のSELECT文の後にORDER BY句を記述します。

UNIONの活用例

  • 複数のテーブルを統合したレポート作成: 異なるテーブルに分散しているデータをまとめて分析する。
  • 異なる条件で抽出したデータを比較: 複数の条件で抽出したデータを並べて比較する。
  • 重複データを排除したリスト作成: 複数のテーブルから重複のないリストを作成する。

まとめ

UNIONは、複数のSELECT文の結果を効率的に結合するための強力なツールです。UNIONとUNION ALLを適切に使い分け、データ分析やレポート作成に役立てましょう。

コメント

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