Jaka jest różnica pomiędzy UNION a UNION ALL w SQL?
1 odpowiedź
UNION usuwa zduplikowane rekordy (gdzie wszystkie kolumny w wynikach są takie same), UNION ALL nie :
Jak użyjesz UNION zamiast UNION ALL spowodujesz obniżenie wydajności, bo serwer bazy danych będzie musiał wykonać dodatkową pracę, żeby usunąć zduplikowane wiersze, no a jak wiadomo, nikt nie chce się duplikatów (szczególnie podczas opracowywania raportów).
Przykłady:
SELECT 'foo' AS bar UNION SELECT 'foo' AS bar
wynik:
+-----+
| bar |
+-----+
| foo |
+-----+
1 row in set (0.00 sec)
SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar
wynik:
+-----+
| bar |
+-----+
| foo |
| foo |
+-----+
2 rows in set (0.00 sec)