UNION と UNION ALL は、2 つ以上の SELECT 文の結果セットを 1 つの結果セットに結合する集合演算子です。
スキーマ要件
UNION クエリ内のすべての SELECT 文は、同じスキーマを使用する必要があります。以下のすべての条件を満たす必要があります:
各
SELECT文に同じフィールドが含まれていること。同じ位置にあるフィールドが同じデータ型を共有していること。
すべての文でフィールドが同じ順序で出現すること。
UNION と UNION ALL の比較
| オペレーター | 重複する値 | パフォーマンス |
|---|---|---|
UNION ALL | 含まれる | より高速 |
UNION | 削除される (UNION ALL + DISTINCT と同等) | より低速 |
重複排除が不要な場合は、UNION ALL を使用してください。
制限事項
1 つのクエリ内で
UNIONとUNION ALLを混在させることはできません。
構文
query:
select_statement
UNION [ALL]
select_statement
[UNION [ALL]
select_statement];例
2 つの結果セットのマージ
SELECT nid, brand, price, size FROM phone WHERE nid < 5
UNION ALL
SELECT nid, brand, price, size FROM phone WHERE nid > 53 つ以上の結果セットのマージ
SELECT nid, brand, price, size FROM phone WHERE nid >= 3 AND nid <= 5
UNION ALL
SELECT nid, brand, price, size FROM phone WHERE nid >= 6 AND nid <= 10
UNION ALL
SELECT nid, brand, price, size FROM phone WHERE nid >= 30 AND nid <= 40