Union

0

Der SQL UNION Operator

Der UNION Operator wird verwendet, um die Ergebnismenge von zwei oder mehr SELECT Anweisungen zu kombinieren.

  • Jede SELECT Anweisung innerhalb von UNION 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“:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

Nachfolgend eine Auswahl aus der Tabelle „Kunden“:

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA
3Grandma Kelly’s HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA

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.

Nach oben scrollen