UNION "と "UNION ALL "の違いは何ですか?
UNIONは重複したレコード(結果のすべての列が同じである)を削除しますが、UNION ALL`は削除しません。
は重複したレコード(結果のすべての列が同じである)を削除しますが、
UNION ALLの代わりにUNION` を使用すると、データベースサーバが重複した行を削除するために追加の作業を行わなければならないため、パフォーマンスが低下しますが、通常は重複した行は必要ありません (特にレポートを作成する場合)。
の代わりに
SELECT 'foo' AS bar UNION SELECT 'foo' AS bar
結果:。
+-----+ | bar | +-----+ | foo | +-----+ 1 row in set (0.00 sec)
SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar
+-----+ | bar | +-----+ | foo | | foo | +-----+ 2 rows in set (0.00 sec)
UNIONとUNION ALLの基本的な違いは、UNION操作は結果セットから重複した行を削除しますが、UNION ALLは結合後のすべての行を返します。
http://zengin.wordpress.com/2007/07/31/union-vs-union-all/ より
どのデータベースを使うかは重要ではありません。
UNION "と "UNION ALL "はすべてのSQL Serverで動作するはずです。
不必要な UNION はパフォーマンスを大きく低下させるので避けるべきです。経験則として、どちらを使用すべきかわからない場合は、UNION ALLを使用してください。
UNION
UNION ALL
UNION
は重複したレコード(結果のすべての列が同じである)を削除しますが、
UNION ALL`は削除しません。UNION ALL
の代わりに
UNION` を使用すると、データベースサーバが重複した行を削除するために追加の作業を行わなければならないため、パフォーマンスが低下しますが、通常は重複した行は必要ありません (特にレポートを作成する場合)。UNIONの例。
結果:。
UNION ALLの例。
結果:。
http://zengin.wordpress.com/2007/07/31/union-vs-union-all/ より
UNION "と "UNION ALL "はすべてのSQL Serverで動作するはずです。
不必要な
UNION
はパフォーマンスを大きく低下させるので避けるべきです。経験則として、どちらを使用すべきかわからない場合は、UNION ALL
を使用してください。