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を適切に使い分け、データ分析やレポート作成に役立てましょう。
コメント