Zurück zu: SQL Tutorial
Der SQL UNION Operator
Der UNION
Operator wird verwendet, um die Ergebnismenge von zwei oder mehr SELECT
Anweisungen zu kombinieren.
- Jede
SELECT
Anweisung innerhalb vonUNION
muss die gleiche Anzahl Spalten haben - Die Spalten müssen außerdem ähnliche Datentypen haben
- Die Spalten in jeder
SELECT
Anweisung müssen außerdem 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
Operator wählt standardmäßig nur unterschiedliche 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 im Ergebnissatz sind normalerweise identisch mit 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 |
Nachfolgend eine Auswahl aus der Tabelle „Kunden“:
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 unterschiedliche 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 die gleiche Stadt haben, wird jede Stadt nur einmal aufgeführt, da UNION
nur unterschiedliche Werte auswählt. Verwenden Sie UNION ALL
, um auch doppelte Werte auszuwählen!
SQL UNION ALL Beispiel
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 unterschiedliche 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
Das folgende SQL Statement 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 handelt sich um einen Alias. SQL-Aliase werden verwendet, um einer Tabelle oder einer Spalte einen temporären Namen zu geben. Ein Alias existiert nur für die Dauer der Abfrage. Daher haben wir hier eine temporäre Spalte mit dem Namen „Typ“ erstellt, die auflistet, ob die Kontaktperson ein „Kunde“ oder ein „Lieferant“ ist.