TOP

SQL UNION Bildirimi

SQL UNION Açıklama

UNION operatörü, iki veya daha fazla SELECT ifadesinin sonuç kümesini birleştirmek için kullanılır.

  • UNION içindeki her SELECT ifadesi aynı sayıda sütuna sahip olmalıdır
  • Sütunların da benzer veri türlerine sahip olması gerekir
  • Her SELECT ifadesindeki sütunlar da aynı sırada olmalıdır

  • UNION Söz Dizimi

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2
    

    UNION ALL Söz Dizimi

    UNION operatörü varsayılan olarak yalnızca farklı değerleri seçer. Yinelenen değerlere izin vermek için UNION ALL kullanın:

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2
    
    Sonuç kümesindeki sütun adları genellikle ilk SELECT ifadesindeki sütun adlarıyla eşleşir.

    Gösteri veritabanı

    Bu derste ünlü örnek veritabanı "Northwind"'yi kullanacağız.

    Aşağıda "Customers" ("Müşteriler") tablosundan bir örnek bulunmaktadır:

    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

    Ve "Suppliers" ("Tedarikçiler") tablosundaki örnek:

    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 Örnek

    Aşağıdaki SQL ifadesi, Müşteriler ve Tedarikçiler tablolarından şehirleri (yalnızca farklı değerler) seçer:

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    Bazı müşteriler veya tedarikçiler aynı şehre (City) sahipse, UNION yalnızca farklı değerler seçtiğinden her şehir yalnızca bir kez belirtilecektir. Yinelenen değerleri de seçmek için UNION ALL kullanın!

    SQL UNION ALL Örnek

    Aşağıdaki SQL ifadesi, hem Müşteriler hem de Tedarikçiler tablolarından şehirleri (yinelenen değerler de) seçer:

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

    SQL UNION ve WHERE

    Aşağıdaki SQL ifadesi, hem Müşteriler hem de Tedarikçiler tablolarından Almanya şehirlerini (yalnızca farklı değerler) seçmektedir:

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

    SQL UNION ALL ve WHERE

    Aşağıdaki SQL ifadesi, hem Müşteriler hem de Tedarikçiler tablolarından Alman şehirlerini (yinelenen değerler de) seçer:

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

    Başka bir SQL UNION Örneği

    Aşağıdaki SQL deyimi tüm müşterileri ve tedarikçileri listeler:

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

    Yukarıdaki "AS Type" ifadesinin bir takma ad olduğunu unutmayın. SQL takma adları bir tabloya veya sütuna geçici bir ad vermek için kullanılır. Takma ad yalnızca istek süresince mevcuttur. Dolayısıyla burada ilgili kişinin "Müşteri" mi yoksa "Satıcı" mı olduğunu gösteren "Type" adında geçici bir sütun oluşturduk.