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は別々のクエリに適用され、最終結果には適用されません。最終結果に変換を適用する必要がある場合、UNIONを含むすべてのクエリをFROM句内のサブクエリに入れることができます。
UNIONを使用してUNION ALLまたはUNION DISTINCTを明示的に指定しない場合、union_default_mode設定を使用して結合モードを指定できます。設定値はALL、DISTINCT、または空の文字列にできます。ただし、union_default_mode設定を空の文字列でUNIONを使用すると、例外が発生します。以下の例は、異なる値の設定のクエリ結果を示します。
クエリ:
結果:
クエリ:
結果:
UNION/UNION ALL/UNION DISTINCTの一部となるクエリは同時に実行でき、その結果は混ぜ合わせることができます。
関連項目