sql >> データベース >  >> RDS >> Database

SQL Union –UNION演算子に関する包括的なガイド

    データベースでデータを処理するとき、SQLで集合演算子を使用して、2つ以上のSELECTステートメントを組み合わせて要件に従ってデータを取得する傾向があります。 SQL UNIONに関するこの記事では、次の順序でデータを取得するために使用されるUNION演算子について説明します。

    • SQL UNION演算子とは何ですか?
    • 構文:
      1. UNION構文
      2. UNIONALL構文
    • UNIONとUNIONALLの違い
    • SQL UNIONの例:
      1. UNIONオペレーターの例
      2. UNIONALL演算子の例
      3. SQLエイリアスを使用したUNION
      4. WHERE句を使用したUNION
      5. WHERE句を使用したUNIONALL
      6. 結合との結合
      7. JOINSを使用したすべてのユニオン

    始めましょう!

    SQL UNION演算子とは何ですか?

    名前が示すように、この演算子/句は、2つ以上のSELECTステートメントの結果を組み合わせるために使用されます。ここで、UNIONステートメント内で使用される各SELECTステートメントは、同じ順序で同じ数の列を持っている必要があります。また、SELECTステートメントに存在するすべての列は、同様のデータ型である必要があります。

    UNION句は、出力として一意の値のみを提供します。念のため、重複する値が必要な場合は、UNIONALL句を使用する必要があります。

    SQL UNIONに関するこの記事に進んで、構文を理解しましょう。

    SQLUNION構文

    UNION構文

    SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
    UNION
    SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
    

    UNIONALL構文

    SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
    UNION ALL
    SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
    

    この記事に進んで、UNIONとUNIONALLの違いを理解しましょう。

    SQLUNIONとUNIONALLの違い

    UNION UNION ALL
    2つ以上の結果セットを組み合わせて、重複する値を保持しません。 2つ以上の結果セットを組み合わせて、重複した値を保持します。
    Syntax: UNION
    Syntax: UNION ALL

    次に、SQL UNIONに関するこの記事では、この演算子のさまざまな使用方法を理解しましょう。

    SQLUNIONおよびUNIONALLの例

    理解を深めるために、次の表を検討してさまざまな例を示します。

    従業員テーブル

    EmpID 名前 EmpAge 都市 PostalCode
    1 エマ 23 ベルリン 12109 ドイツ
    2 Rahul 26 ムンバイ 400015 インド
    3 Aayra 24 ニューヨーク 10014 米国
    4 ジョン 32 ロンドン E1 7AE 英国
    5 デレク 29 ニューヨーク 10012 米国

    プロジェクトテーブル

    ProjectID 名前 WorkingDays 都市 PostalCode
    1 プロジェクト1 10 ベルリン 12109 ドイツ
    2 プロジェクト2 7 ムンバイ 400015 インド
    3 プロジェクト3 20 デリー 110006 インド
    4 プロジェクト4 15 ムンバイ 400015 インド
    5 プロジェクト5 28 ベルリン 12109 ドイツ

    例から始めましょう。

    SQLUNIONの例

    UNION演算子の例

    EmployeesandProjectsテーブルから個別の都市を取得するクエリを記述します。

    SELECT City FROM Employees
    UNION
    SELECT City FROM Projects
    ORDER BY City;
    

    出力:

    都市

    ベルリン

    デリー

    ロンドン

    ムンバイ

    ニューヨーク

    UNIONALL演算子の例

    EmployeesandProjectsテーブルから都市を取得するためのクエリを記述します。ここでは、重複する値を含める必要があります。

     
    SELECT City FROM Employees
    UNION ALL
    SELECT City FROM Projects
    ORDER BY City; 
    

    出力:

    都市

    ベルリン

    ベルリン

    ベルリン

    デリー

    ロンドン

    ムンバイ

    ムンバイ

    ムンバイ

    ニューヨーク

    ニューヨーク

    この記事の次の記事では、SQLエイリアスでUNION句を使用する方法を理解しましょう。

    SQLエイリアスを使用したUNION

    SQLエイリアスは、テーブルまたは列に一時的な名前を付けるために使用されます。それでは、すべてのユニークな従業員とプロジェクトを一覧表示するクエリを作成しましょう。

    SELECT 'Employee' AS Type, Name, City, Country
    FROM Employees
    UNION
    SELECT 'Project', Name, City, Country
    FROM Projects;
    

    出力:

    タイプ 名前 都市
    従業員 エマ ベルリン ドイツ
    従業員 Rahul ムンバイ インド
    従業員 Aayra ニューヨーク 米国
    従業員 ジョン ロンドン 英国
    従業員 デレク ニューヨーク 米国
    プロジェクト プロジェクト1 ベルリン ドイツ
    プロジェクト プロジェクト2 ムンバイ インド
    プロジェクト プロジェクト3 デリー インド
    プロジェクト プロジェクト4 ムンバイ インド
    プロジェクト プロジェクト5 ベルリン ドイツ

    WHERE句を使用したUNION

    従業員とプロジェクトの両方のテーブルから、個別のインドの都市とその郵便番号を取得するためのクエリを記述します。

    SELECT City, PostalCode, Country FROM Employees
    WHERE Country='India'
    UNION
    SELECT City, PostalCode, Country FROM Projects
    WHERE Country='India'
    ORDER BY City;
    

    出力:

    都市 PostalCode
    デリー 110006 インド
    ムンバイ 400015 インド

    WHERE句を使用したUNIONALL

    重複する値が許可されているEmployeesテーブルとProjectsテーブルの両方からインドの都市とその郵便番号を取得するクエリを記述します

    SELECT City, PostalCode, Country FROM Employees
    WHERE Country='India'
    UNION ALL
    SELECT City, PostalCode, Country FROM Projects
    WHERE Country='India'
    ORDER BY City;
    

    出力:

    都市 PostalCode
    デリー 110006 インド
    ムンバイ 400015 インド
    ムンバイ 400015 インド
    ムンバイ 400015 インド

    この記事を進めて、JOINSでUNIONおよびUNIONALL句を使用する方法を理解しましょう。 SQLのJOINSは、2つ以上のテーブルの関連する列に基づいて、それらのテーブルの行を結合するために使用されるコマンドです。

    結合との結合

    SQL UNION演算子をSQLJOINSとともに使用して、2つの異なるテーブルからデータを取得できます。例として、次のテーブルとEmployeesテーブルを検討します。

    ProjectDetailsテーブル

    PID WorkingDays EmpID CostforProject
    11 12 4 20000
    22 16 3 35000
    33 30 1 60000
    44 25 3 45000
    55 21 1 50000
    SELECT  EmpID, Name, CostforProject
       FROM Employees
       LEFT JOIN ProjectDetails
       ON Employees.EmpID = ProjectDetails.EmpID
    UNION
       SELECT  EmpID, Name, CostforProject
       FROM Employees
       RIGHT JOIN ProjectDetails
       ON Employees.EmpID = ProjectDetails.EmpID;
    

    出力:

    EmpID 名前 CostforProject
    1 エマ 60000
    1 エマ 50000
    2 Rahul NULL
    3 Aayra 35000
    3 Aayra 45000
    4 ジョン 20000
    5 デレク NULL

    UNION ALL with JOINS

    重複する値が許可されているEmployeesおよびProjectDetailsテーブルからEmpID、Name、およびCostforProjectを取得するクエリを記述します。

    SELECT  EmpID, Name, CostforProject
       FROM Employees
       LEFT JOIN ProjectDetails
       ON Employees.EmpID = ProjectDetails.EmpID
    UNION ALL
       SELECT  EmpID, Name, CostforProject
       FROM Employees
       RIGHT JOIN ProjectDetails
       ON Employees.EmpID = ProjectDetails.EmpID;
    

    出力:

    EmpID 名前 CostforProject
    1 エマ 60000
    1 エマ 50000
    2 Rahul NULL
    3 Aayra 35000
    3 Aayra 45000
    4 ジョン 20000
    5 デレク NULL
    4 ジョン 20000
    3 Aayra 35000
    1 エマ 60000
    3 Aayra 35000
    1 エマ 50000

    これで、SQLUNIONに関するこの記事は終わりです。 SQLUNIONに関するこの記事を楽しんでいただけたでしょうか。 UNIONコマンドとUNIONALLコマンドを使用してクエリを作成するさまざまな方法を見てきました。MySQLについて詳しく知り、このオープンソースのリレーショナルデータベースについて知りたい場合は、MySQLDBAを確認してください。認定トレーニング インストラクター主導のライブトレーニングと実際のプロジェクトの経験が付属しています。このトレーニングは、MySQLを深く理解し、主題をマスターするのに役立ちます。

    質問がありますか? 「SQLUNION」のコメントセクションでそのことを伝えてください。折り返しご連絡いたします。


    1. MicrosoftAccessでナビゲーションフォームをデフォルトフォームとして設定する方法

    2. 2つの接続されたテーブルを作成するためのデータベースの選択?

    3. SQLiteを使用したAndroidListView

    4. PHPとMySQLを使用してニュースレターシステムを構築する