Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie den Operator MySQL UNION
verwenden, um zwei oder mehr Ergebnismengen aus mehreren SELECT
– Anweisungen in einer einzigen Ergebnismenge zu kombinieren.
MySQL UNION operator
MySQL UNION
Mit dem Operator können Sie zwei oder mehr Ergebnismengen von Abfragen zu einer einzigen Ergebnismenge kombinieren., Im Folgenden wird die Syntax des Operators UNION
veranschaulicht:
Um die Ergebnismenge von zwei oder mehr Abfragen mit dem Operator UNION
zu kombinieren, müssen Sie folgende Grundregeln befolgen:
- Zuerst müssen die Anzahl und die Reihenfolge der Spalten in allen
SELECT
– Anweisungen identisch sein. - Zweitens müssen die Datentypen der Spalten gleich oder kompatibel sein.,
Standardmäßig entfernt der Operator UNION
doppelte Zeilen, auch wenn Sie den Operator DISTINCT
nicht explizit angeben.,
Sehen wir uns die folgenden Beispieltabellen an: t1
und t2
:
Die folgende Anweisung kombiniert Ergebnismengen, die von t1
und t2
Tabellen zurückgegeben werden:
Code language: SQL (Structured Query Language) (sql)
Die endgültige die Ergebnismenge enthält die unterschiedlichen Werte aus separaten Ergebnismengen, die von den Abfragen zurückgegeben werden:
Code language: SQL (Structured Query Language) (sql)
Da die Zeilen mit den Werten 2 und 3 Duplikate sind, hat die UNION
sie entfernt und nur eindeutige Werte beibehalten.,
Das folgende Venn-Diagramm veranschaulicht die Vereinigung zweier Ergebnismengen, die von t1
und t2
Tabellen stammen:
Wenn Sie verwenden Sie die UNION ALL
explizit, die doppelten Zeilen bleiben, falls verfügbar, im Ergebnis. Da UNION ALL
keine Duplikate verarbeiten muss, funktioniert es schneller als UNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Wie Sie sehen, werden die Duplikate in der kombinierten Ergebnismenge aufgrund der Operation angezeigt.
UNION vs. JOIN
A JOIN
kombiniert Ergebnismengen horizontal, a UNION
hängt Ergebnismengen vertikal an.,ple-Datenbank für die Demonstration:
Angenommen, Sie möchten den Vor-und Nachnamen von Mitarbeitern und Kunden zu einer einzigen Ergebnismenge kombinieren, können Sie den Operator UNION
wie folgt verwenden:
Code language: SQL (Structured Query Language) (sql)
Wie Sie an der Ausgabe sehen können, verwendet die MySQL UNION
die Spaltennamen der ersten SELECT
Anweisung für die Spaltenüberschriften der Ausgabe.,
Wenn Sie andere Spaltenüberschriften verwenden möchten, müssen Sie Spaltenaliase explizit in der erstenSELECT
– Anweisung verwenden, wie im folgenden Beispiel gezeigt:
Dieses Beispiel verwendet die Spaltenüberschrift der ersten Abfrage für die Ausgabe. Es verwendet die Funktion CONCAT()
, um Vorname, Leerzeichen und Nachnamen zu einem vollständigen Namen zu verketten.,
MySQL UNION und ORDER BY
Wenn Sie die Ergebnismenge einer Union sortieren möchten, verwenden Sie eine ORDER BY
– Klausel in der letzten SELECT
– Anweisung, wie im folgenden Beispiel gezeigt:
Wenn Sie die ORDER BY
– Klausel in jede SELECT
– Anweisung einfügen, hat dies keinen Einfluss auf die Reihenfolge der Zeilen in der Endergebnismenge.,
Um zwischen Mitarbeitern und Kunden zu unterscheiden, können Sie eine Spalte hinzufügen, wie in der folgenden Abfrage gezeigt:
MySQL bietet Ihnen auch eine alternative Möglichkeit, eine Ergebnismenge basierend auf der Spaltenposition mit der Klausel ORDER BY
wie folgt zu sortieren:Es ist jedoch keine gute Praxis, die Ergebnismenge nach Spaltenposition zu sortieren.
In diesem Tutorial haben Sie gelernt, wie Sie MySQL UNION
Anweisung verwenden, um Daten aus mehreren Abfragen in einer einzigen Ergebnismenge zu kombinieren.,
- War dieses tutorial hilfreich?
- YesNo