SQL UNIONOperatoren
Der SQL-UNION-Operator kombiniert die Ergebnisse von zwei oder mehr SELECT-Anweisungen.
Der UNION-Operator wird verwendet, um die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu kombinieren. Er kann Daten aus mehreren Tabellen auswählen und die Ergebnismengen zu einer Ergebnismenge kombinieren. Bei der Verwendung von UNION muss jede SELECT-Anweisung die gleiche Anzahl von Spalten haben, und die Datentypen der entsprechenden Spalten müssen ähnlich sein.
SQL-UNION-Syntax
SELECT column1, column2, ... FROM table1 UNION SELECT column1, column2, ... FROM table2;
Der UNION-Operator entfernt standardmäßig doppelte Datensätze. Wenn Sie alle doppelten Datensätze behalten möchten, können Sie den UNION-ALL-Operator verwenden.

SQL-UNION-ALL-Syntax
SELECT column1, column2, ... FROM table1 UNION ALL SELECT column1, column2, ... FROM table2;

Hinweis:Die Spaltennamen in der UNION-Ergebnismenge entsprechen immer den Spaltennamen in der ersten SELECT-Anweisung in der UNION.
Demo-Datenbank
In diesem Tutorial verwenden wir die Beispieldatenbank EXAMPLE.
Nachfolgend sind die Daten aufgeführt, die aus der Tabelle "Websites" ausgewählt wurden:
mysql> SELECT * FROM Websites; +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Example | http://www.example.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
Nachfolgend sind die Daten aus der "apps"-App:
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id | app_name | url | country | +----+------------+-------------------------+---------+ | 1 | QQ APP | http://im.qq.com/ | CN | | 2 | 微博 APP | http://weibo.com/ | CN | | 3 | 淘宝 APP | https://www.taobao.com/ | CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
SQL UNION Beispiel
Die folgende SQL-Anweisung wählt alledistinctcountry (nur eindeutige Werte) aus:
Beispiel
VEREINIGUNG
SELECT country FROM apps
ORDER BY country;
Das Ausführen des obigen SQL liefert die folgenden Ergebnisse:
Hinweis:UNION kann nicht verwendet werden, um alle Länder aus beiden Tabellen aufzulisten. Wenn einige Websites und Apps aus demselben Land stammen, wird jedes Land nur einmal aufgeführt. UNION wählt nur unterschiedliche Werte aus. Verwenden Sie UNION ALL, um doppelte Werte auszuwählen!
SQL UNION ALL Beispiel
Die folgende SQL-Anweisung verwendet UNION ALL, um aus den Tabellen "Websites" und "apps"allecountry auszuwählen (einschließlich doppelter Werte):
Beispiel
UNION ALL
SELECT country FROM apps
ORDER BY country;
Das Ausführen des obigen SQL liefert die folgenden Ergebnisse:
SQL UNION ALL mit WHERE
Die folgende SQL-Anweisung verwendet UNION ALL, um aus den Tabellen "Websites" und "apps"alleDaten für China (CN) auszuwählen (einschließlich doppelter Werte):
Beispiel
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
Das Ausführen des obigen SQL liefert die folgenden Ergebnisse: