UNION句
UNION
を使用する際は、明示的にUNION ALL
またはUNION DISTINCT
を指定できます。
ALL
またはDISTINCT
を指定しない場合、union_default_mode
の設定に依存します。UNION ALL
とUNION DISTINCT
の違いは、UNION DISTINCT
が結合結果に対して一意の変換を行う点です。これは、UNION ALL
を含むサブクエリからのSELECT DISTINCT
と等価です。
UNION
を使用して、任意の数のSELECT
クエリを結果に拡張することで結合できます。例:
結果のカラムは、そのインデックス(SELECT
内の順序)で一致します。カラム名が一致しない場合、最終結果の名前は最初のクエリから取られます。
結合のために型変換が行われます。たとえば、結合される2つのクエリが互換性のある型のNullable
でないフィールドとNullable
型を持っている場合、結果のUNION
はNullable
型のフィールドを持ちます。
UNION
の一部であるクエリは、丸括弧で囲むことができます。ORDER BYとLIMITは、最終結果ではなく、個別のクエリに適用されます。最終結果に変換を適用する必要がある場合は、FROM句のサブクエリにUNION
を持つすべてのクエリを置くことができます。
UNION
を使用してUNION ALL
またはUNION DISTINCT
を明示的に指定しない場合、union_default_mode設定を使用して結合モードを指定できます。設定値はALL
、DISTINCT
、または空の文字列です。ただし、union_default_mode
設定を空の文字列で使用する場合、例外がスローされます。以下の例では、異なる設定値のクエリの結果を示しています。
クエリ:
結果:
クエリ:
結果:
UNION/UNION ALL/UNION DISTINCT
の一部であるクエリは同時に実行でき、その結果は混ぜ合わせることができます。
関連情報