MySQL UNION- Operator
Der MySQL UNION-Operator
Der UNION
Operator wird verwendet, um die Ergebnismenge von zwei oder mehr
SELECT
Anweisungen zu kombinieren.
- Jede
SELECT
Anweisung innerhalbUNION
muss die gleiche Anzahl von Spalten haben - Die Spalten müssen auch ähnliche Datentypen haben
- Die Spalten in jeder
SELECT
Anweisung müssen auch in der gleichen Reihenfolge sein
UNION-Syntax
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL-Syntax
Der UNION
Bediener wählt standardmäßig nur eindeutige Werte aus. Um doppelte Werte zuzulassen, verwenden Sie UNION ALL
:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Hinweis: Die Spaltennamen in der Ergebnismenge sind normalerweise gleich den Spaltennamen in der ersten SELECT
Anweisung.
Demo-Datenbank
In diesem Tutorial verwenden wir die bekannte Northwind-Beispieldatenbank.
Nachfolgend eine Auswahl aus der Tabelle „Kunden“:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Und eine Auswahl aus der Tabelle „Lieferanten“:
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
SQL-UNION-Beispiel
Die folgende SQL-Anweisung gibt die Städte (nur eindeutige Werte) sowohl aus der Tabelle „Kunden“ als auch aus der Tabelle „Lieferanten“ zurück:
Beispiel
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
Hinweis: Wenn einige Kunden oder Lieferanten dieselbe Stadt haben, wird jede Stadt nur einmal aufgeführt, da UNION
nur unterschiedliche Werte ausgewählt werden. Verwenden Sie
UNION ALL
, um auch doppelte Werte auszuwählen!
Beispiel für SQL UNION ALL
Die folgende SQL-Anweisung gibt die Städte (auch doppelte Werte) sowohl aus der Tabelle „Kunden“ als auch aus der Tabelle „Lieferanten“ zurück:
Beispiel
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
SQL UNION mit WHERE
Die folgende SQL-Anweisung gibt die deutschen Städte (nur eindeutige Werte) sowohl aus der Tabelle „Kunden“ als auch aus der Tabelle „Lieferanten“ zurück:
Beispiel
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
SQL UNION ALL mit WHERE
Die folgende SQL-Anweisung gibt die deutschen Städte (auch doppelte Werte) sowohl aus der Tabelle "Kunden" als auch aus der Tabelle "Lieferanten" zurück:
Beispiel
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
Ein weiteres UNION-Beispiel
Die folgende SQL-Anweisung listet alle Kunden und Lieferanten auf:
Beispiel
SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
Beachten Sie den „AS-Typ“ oben – es ist ein Alias. SQL-Aliase werden verwendet, um einer Tabelle oder Spalte einen temporären Namen zu geben. Ein Alias existiert nur für die Dauer der Abfrage. Hier haben wir also eine temporäre Spalte namens „Typ“ erstellt, die auflistet, ob die Kontaktperson ein „Kunde“ oder ein „Lieferant“ ist.