Der SQL-Befehl UNION vereinigt die Ergebnisse zweier Abfragen. Damit ähnelt UNION in gewisser Hinsicht dem Begriff des JOIN, da beide für aufeinander bezogene Daten in unterschiedlichen Tabellen verwendet werden. Bei UNION gilt jedoch die Einschränkung, dass alle entsprechenden Spalten vom gleichen Datentyp sein müssen. Auch werden mit UNIONnur unterschiedliche Werte ausgewählt, also mehrfach vorkommende Ergebnistupel entfernt (ähnlich wie bei SELECT DISTINCT).
Die Syntax sieht folgendermaßen aus:
[SQL-Anweisung 1]
UNION
[SQL-Anweisung 2]
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. Dazu verwenden wir folgende SQL-Anweisung:
SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales
Ergebnis:
| Date |
| 05.Jan.1999 |
| 07.Jan.1999 |
| 08.Jan.1999 |
| 10.Jan.1999 |
| 11.Jan.1999 |
| 12.Jan.1999 |
Beachten Sie bitte, dass wir mit der Eingabe "SELECT DISTINCT Date" für eine oder beide der SQL-Anweisungen den gleichen Ergebnissatz erhalten.