TOP

بيان SQL UNION

وصف SQL UNION

يتم استخدام عامل التشغيل UNION لدمج مجموعة النتائج المكونة من عبارتين أو أكثر من عبارات SELECT.

  • يجب أن تحتوي كل عبارة SELECT في UNION على نفس عدد الأعمدة
  • يجب أن تحتوي الأعمدة أيضًا على أنواع بيانات مماثلة
  • يجب أيضًا أن تكون الأعمدة الموجودة في كل عبارة SELECT بنفس الترتيب

  • UNION بناء الجملة

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

    UNION ALL بناء الجملة

    يحدد عامل التشغيل UNION القيم المميزة فقط افتراضيًا. للسماح بالقيم المكررة، استخدم UNION ALL:

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2
    
    عادةً ما تتطابق أسماء الأعمدة في مجموعة النتائج مع أسماء الأعمدة في عبارة SELECT الأولى.

    قاعدة البيانات التوضيحية

    في هذا البرنامج التعليمي سوف نستخدم قاعدة البيانات الشهيرة "Northwind".

    يوجد أدناه نموذج من الجدول "Customers" ("العملاء"):

    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

    والعينة من الجدول "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 مثال

    تحدد عبارة SQL التالية المدن (قيم مختلفة فقط) من جداول العملاء والموردين:

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    إذا كان لدى بعض العملاء أو الموردين نفس المدينة (City)، فسيتم تحديد كل مدينة مرة واحدة فقط لأن UNION يحدد قيمًا مختلفة فقط. استخدم UNION ALL لتحديد القيم المكررة أيضًا!

    SQL UNION ALL مثال

    تحدد عبارة SQL التالية المدن (قيم مكررة أيضًا) من جدولي العملاء والموردين:

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

    SQL UNION مع WHERE

    تحدد عبارة SQL التالية المدن الألمانية (قيم مختلفة فقط) من جدولي العملاء والموردين:

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

    SQL UNION ALL مع WHERE

    تحدد عبارة SQL التالية المدن الألمانية (أيضًا القيم المكررة) من جدولي العملاء والموردين:

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

    مثال SQL UNION آخر

    يسرد بيان SQL التالي جميع العملاء والموردين:

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

    لاحظ أن "AS Type" أعلاه هو اسم مستعار. تُستخدم الأسماء المستعارة لـ SQL لإعطاء جدول أو عمود اسمًا مؤقتًا. الاسم المستعار موجود فقط طوال مدة الطلب. لذلك، قمنا هنا بإنشاء عمود مؤقت يسمى "Type" يشير إلى ما إذا كانت جهة الاتصال "عميلًا" أو "بائعًا".