MySQL UNION ALL Operator

In diesem MySQL-Tutorial wird die Verwendung des MySQL-Operators UNION ALL mit Syntax und Beispielen erläutert.

Beschreibung

Der MySQL UNION ALL-Operator wird verwendet, um die Ergebnismengen von 2 oder mehr SELECT-Anweisungen zu kombinieren. Es gibt alle Zeilen aus der Abfrage zurück und entfernt keine doppelten Zeilen zwischen den verschiedenen SELECT-Anweisungen.
Jede SELECT-Anweisung innerhalb des MySQL UNION ALL-Operators muss dieselbe Anzahl von Feldern in den Ergebnismengen mit ähnlichen Datentypen enthalten.

Syntax

Die Syntax für den UNION ALL-Operator in MySQL lautet:

SELECT Ausdruck1, Ausdruck2, … Ausdruck_n
FROM Tabellen
[ WHERE Bedingungen]
UNION ALL
SELECT Ausdruck1, Ausdruck2, … Ausdruck_n
FROM Tabellen
[ WHERE Bedingungen];

Parameter oder Argumente

Ausdruck1, Ausdruck2, … Ausdruck_n
Die Spalten oder Berechnungen, die Sie abrufen möchten.
Tabellen
Die Tabellen, aus denen Sie Datensätze abrufen möchten. In der FROM-Klausel muss mindestens eine Tabelle aufgeführt sein.
WHERE Bedingungen
Wahlweise. Die Bedingungen, die erfüllt sein müssen, damit die Datensätze ausgewählt werden.

Hinweis

  • In beiden SELECT-Anweisungen muss die gleiche Anzahl von Ausdrücken vorhanden sein.
  • Die Spaltennamen aus der ersten SELECT-Anweisung werden als Spaltennamen für die Ergebnismenge verwendet.

Beispiel – Einzelfeld zurückgeben

Das Folgende ist ein Beispiel für den MySQL UNION ALL-Operator, der ein Feld von mehreren SELECT-Anweisungen zurückgibt (und beide Felder haben denselben Datentyp):

Dieser MySQL UNION ALL-Operator würde eine supplier_id mehrmals in Ihrer Ergebnismenge zurückgeben, wenn die supplier_id sowohl in der suppliers– als auch in der Tabelle orders enthalten wäre. Der MySQL UNION ALL-Operator entfernt keine Duplikate. Wenn Sie Duplikate entfernen möchten, verwenden Sie den MySQL UNION-Operator.

Beispiel – Verwenden von ORDER BY

Der MySQL UNION ALL-Operator kann die ORDER BY-Klausel verwenden, um die Ergebnisse des Operators zu ordnen.
Zum Beispiel:

Da die Spaltennamen in diesem MySQL UNION ALL-Operator zwischen den beiden SELECT-Anweisungen unterschiedlich sind, ist es vorteilhafter, die Spalten in der ORDER BY-Klausel anhand Ihrer Position in der Ergebnismenge zu referenzieren. In diesem Beispiel haben wir die Ergebnisse nach supplier_name / company_name in aufsteigender Reihenfolge sortiert, wie durch ORDER BY 2 angegeben.
Die Felder supplier_name / company_name befinden sich in der Ergebnismenge an Position 2.