UNION は一意の行のみを返しますが、UNION ALL には重複行が含まれます。UNION はマージ前に行の重複を排除しますが、UNION ALL は行の重複を排除しません。
#SQL における UNION と UNION ALL の違い
UNION と UNION ALL はどちらも、2 つまたは複数のテーブルの行に対する SQL 演算子。ただし、重複行の処理方法には根本的な違いがあります。UNION
UNION ALL
例
以下に示すように、2 つのテーブル T1 と T2 があるとします。<code>T1: +----+----+ | ID | Name | +----+----+ | 1 | John | | 2 | Susan | | 3 | Mary | +----+----+ T2: +----+----+ | ID | Name | +----+----+ | 2 | Susan | | 4 | Bob | +----+----+</code>UNION 演算子を使用してマージする場合これら 2 つのテーブル:
<code>SELECT * FROM T1 UNION SELECT * FROM T2;</code>結果は次のようになります:
<code>+----+----+ | ID | Name | +----+----+ | 1 | John | | 2 | Susan | | 3 | Mary | | 4 | Bob | +----+----+</code>ここで、重複行 (ID = 2、名前 = Susan) が削除されています。 UNION ALL 演算子を使用してこれら 2 つのテーブルをマージすると:
<code>SELECT * FROM T1 UNION ALL SELECT * FROM T2;</code>結果は次のようになります:
<code>+----+----+ | ID | Name | +----+----+ | 1 | John | | 2 | Susan | | 2 | Susan | | 3 | Mary | | 4 | Bob | +----+----+</code>ここで、重複行はすでに結果に含まれています。
以上がSQLのunionとunion allの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。