TOP

SQL UNION-Anweisung

SQL UNION Beschreibung

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

  • Jede SELECT-Anweisung in UNION muss die gleiche Anzahl von Spalten haben
  • Spalten müssen außerdem ähnliche Datentypen haben
  • Die Spalten in jeder SELECT-Anweisung müssen ebenfalls in derselben 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
    
    Die Spaltennamen im Ergebnissatz stimmen normalerweise mit den Spaltennamen in der ersten SELECT-Anweisung überein.

    Demonstrationsdatenbank

    In diesem Tutorial verwenden wir die berühmte Beispieldatenbank „Northwind“.

    Nachfolgend finden Sie ein Beispiel aus der Tabelle „Customers“ („Kunden“):

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    Und das Beispiel aus der Tabelle „Suppliers“ („Suppliers“):

    SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
    1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
    2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
    3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
    4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
    5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

    SQL UNION Beispiel

    Die folgende SQL-Anweisung wählt Städte (nur unterschiedliche Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    Wenn einige Kunden oder Lieferanten dieselbe Stadt haben (City), wird jede Stadt nur einmal angegeben, 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 wählt Städte (auch doppelte Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:

    Run SQLSELECT City FROM Customers 
    UNION ALL 
    SELECT City FROM Suppliers 
    ORDER BY City
    

    SQL UNION zusammen mit WHERE

    Die folgende SQL-Anweisung wählt deutsche Städte (nur unterschiedliche Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    SQL UNION ALL zusammen mit WHERE

    Die folgende SQL-Anweisung wählt deutsche Städte (auch doppelte Werte) aus den Tabellen „Kunden“ und „Lieferanten“ aus:

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION ALL 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    Ein weiteres SQL UNION-Beispiel

    Die folgende SQL-Anweisung listet alle Kunden und Lieferanten auf:

    Run SQLSELECT 'Customer' AS Type, ContactName, City, Country 
    FROM Customers 
    UNION 
    SELECT 'Supplier', ContactName, City, Country 
    FROM Suppliers
    

    Beachten Sie, dass es sich bei „AS Type“ oben um einen Alias ​​handelt. SQL-Aliase werden verwendet, um einer Tabelle oder Spalte einen temporären Namen zu geben. Der Alias ​​existiert nur für die Dauer der Anfrage. Deshalb haben wir hier eine temporäre Spalte namens „Type“ erstellt, die angibt, ob der Kontakt ein „Kunde“ oder ein „Anbieter“ ist.