English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden Sie lernen, wie Sie die Ergebnisse von zwei oder mehreren SQL-Abfragen kombinieren.
Der UNION-Operator wird verwendet, um die Ergebnisse von zwei oder mehreren SELECT-Abfragen in eine einzige Ergebnismenge zu kombinieren. UNION-Operationen unterscheiden sich von Verbindungen, die Spalten aus zwei Tabellen zusammenführen. Der UNION-Operator platziert alle Zeilen aus beiden Quelldatenbanktabellen in einer einzigen Ergebnistabelle, um eine neue Tabelle zu erstellen.
Hier sind die grundlegenden Regeln für die Verwendung von UNION, um die Ergebnisse zweier SELECT-Abfragen zu kombinieren:
In allen Abfragen muss die Anzahl und Reihenfolge der Spalten identisch sein.
Die Datentypen der entsprechenden Spalten müssen kompatibel sein.
Wenn diese Bedingungen erfüllt sind, sind diese Tabellen kompatibel miteinander (union-kompatibel):
Basisgrammatik der UNION:
SELECT column_list FROM table1_name UNION SELECT column_list FROM table2_name;
Um die Union-Operation besser zu verstehen, gehen wir davon aus, dass einige hypothetische Felder in den Tabellen employees und customers existieren, z.B. first_name und last_name. Bitte beachten Sie, dass diese Felder tatsächlich in unseren Demonstrationsdatenbanktabellen nicht existieren.
+----+------------+-----------+--------+ | id | first_name | last_name | salary | +----+------------+-----------+--------+ | 1 | Ethan | Hunt | 5000 | | 2 | Tony | Montana | 6500 | | 3 | Sarah | Connor | 8000 | | 4 | Rick | Deckard | 7200 | | 5 | Martin | Blank | 5600 | +----+------------+-----------+--------+ | +----+------------+-----------+----------+ | id | first_name | last_name | city | +----+------------+-----------+----------+ | 1 | Maria | Anders | Berlin | | 2 | Fran | Wilson | Madrid | | 3 | Dominique | Perrier | Paris | | 4 | Martin | Blank | Turin | | 5 | Thomas | Hardy | Portland | +----+------------+-----------+----------+ | |
Tabelle: employees | Tabelle: customers |
Lassen Sie uns die Union-Operation ausführen, um die Ergebnisse der beiden Abfragen zu kombinieren.
Der folgende Befehl gibt alle Namen und Nachnamen der Kunden und Mitarbeiter zurück:
SELECT first_name, last_name FROM employees UNION SELECT first_name, last_name FROM customers;
Nach der Ausführung des obigen Befehls wird das Ergebnis wie folgt aussehen:
+---------------+--------------+ | first_name | last_name | +---------------+--------------+ | Ethan | Hunt | | Tony | Montana | | Sarah | Connor | | Rick | Deckard | | Martin | Blank | | Maria | Anders | | Fran | Wilson | | Dominique | Perrier | | Thomas | Hardy | +---------------+--------------+
Standardmäßig entfernt der UNION-Operator wiederholte Zeilen aus der kombinierten Ergebnismenge. Dies ist der Grund, warum die obige Abfrage nur9Zeilen, wenn Sie den Namen "Martin Blank" gleichzeitig in den Tabellen "employees" und "customers" bemerken.
Wenn Sie jedoch die wiederholten Zeilen beibehalten möchten, können Sie den Schlüsselwort ALL verwenden, wie folgt:
SELECT first_name, last_name FROM employees UNION ALL SELECT first_name, last_name FROM customers;