UNION ALL hängt die Ergebnisse mehrerer SELECT-Abfragen zu einer Liste zusammen – und behält dabei alle Zeilen, auch doppelte. Der verwandte Operator UNION entfernt Duplikate zusätzlich.
Grundform
SELECT name FROM kunden_2024
UNION ALL
SELECT name FROM kunden_2025;
Beide Abfragen müssen die gleiche Anzahl Spalten liefern, und die Datentypen müssen zueinander passen. Die Spaltennamen des Ergebnisses kommen aus der ersten Abfrage.
UNION oder UNION ALL?
UNIONsortiert oder hasht das Gesamtergebnis, um Duplikate zu entfernen – das kostet Zeit und Speicher.UNION ALLüberspringt diesen Schritt und ist dadurch deutlich schneller.- Können Duplikate gar nicht vorkommen (etwa bei getrennten Zeiträumen oder Partitionen), ist
UNION ALLfast immer die bessere Wahl.
Sortieren und begrenzen
SELECT name FROM kunden_2024
UNION ALL
SELECT name FROM kunden_2025
ORDER BY name;
Ein ORDER BY am Ende sortiert das gesamte Ergebnis. Eine Sortierung nur innerhalb eines Teil-SELECT ist standardmäßig nicht erlaubt – sie wird ignoriert beziehungsweise ist nur mit Klammern und LIMIT in einigen Datenbanken möglich. Das begrenzende LIMIT gilt ebenfalls für das Gesamtergebnis.
Verwandte Grundlagen: SQL UNION, SQL INTERSECT, SQL EXCEPT, SQL WHERE, SQL DISTINCT, SQL LIKE.