Der SQL-Befehl UNION ALL vereinigt ebenfalls die Ergebnismengen zweier Abfragen. Der Unterschied zwischen UNION
ALL und UNION besteht darin, dass mit UNION nur unterschiedliche Werte ausgewählt werden, während bei UNION ALL
alle Werte, also auch mehrfach vorkommende Ergebnistupel erhalten bleiben.
Die Syntax für UNION ALL sieht folgendermaßen aus:
[SQL-Anweisung 1]
UNION ALL
[SQL-Anweisung 2]
Wir verwenden das gleiche Beispiel wie im vorherigen Abschnitt, um den Unterschied zu verdeutlichen. Nehmen wir an, es liegen die folgenden zwei Tabellen vor,
Tabelle Store_Information
| store_name |
Sales |
Date |
| Los Angeles |
1500€ |
05.Jan.1999 |
| San Diego |
250€ |
07.Jan.1999 |
| Los Angeles |
300€ |
08.Jan.1999 |
| Boston |
700€ |
08.Jan.1999 |
Tabelle Internet_Sales
| Date |
Sales |
| 07.Jan.1999 |
250€ |
| 10.Jan.1999 |
535€ |
| 11.Jan.1999 |
320€ |
| 12.Jan.1999 |
750€ |
und wir möchten alle Tage herausfinden, an denen ein Verkaufsvorgang stattgefunden hat und ebenso alle Tage, an denen etwas über das Internet verkauft wurde. Dazu verwenden wir folgende SQL-Anweisung:
SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales
Ergebnis:
| Date |
| 05.Jan.1999 |
| 07.Jan.1999 |
| 08.Jan.1999 |
| 08.Jan.1999 |
| 07.Jan.1999 |
| 10.Jan.1999 |
| 11.Jan.1999 |
| 12.Jan.1999 |