UNIONとUNION ALLの違いは何ですか?

UNION "と "UNION ALL "の違いは何ですか?

ソリューション

UNIONは重複したレコード(結果のすべての列が同じである)を削除しますが、UNION ALL`は削除しません。

UNION ALLの代わりにUNION` を使用すると、データベースサーバが重複した行を削除するために追加の作業を行わなければならないため、パフォーマンスが低下しますが、通常は重複した行は必要ありません (特にレポートを作成する場合)。

UNIONの例。

SELECT 'foo' AS bar UNION SELECT 'foo' AS bar

結果:

+-----+
| bar |
+-----+
| foo |
+-----+
1 row in set (0.00 sec)

UNION ALLの例。

SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar

結果:

+-----+
| bar |
+-----+
| foo |
| foo |
+-----+
2 rows in set (0.00 sec)
解説 (13)

UNIONとUNION ALLの基本的な違いは、UNION操作は結果セットから重複した行を削除しますが、UNION ALLは結合後のすべての行を返します。

http://zengin.wordpress.com/2007/07/31/union-vs-union-all/ より

解説 (0)

どのデータベースを使うかは重要ではありません。

UNION "と "UNION ALL "はすべてのSQL Serverで動作するはずです。

不必要な UNION はパフォーマンスを大きく低下させるので避けるべきです。経験則として、どちらを使用すべきかわからない場合は、UNION ALLを使用してください。

解説 (4)