عامل SQL UNION

عامل SQL UNION

عامل SQL UNION

يُستخدم عامل UNION لدمج نتائج استعلامين SELECT أو أكثر في نتيجة واحدة. يقوم UNION تلقائيًا بحذف الصفوف المكررة من النتيجة، بينما UNION ALL يحتفظ بكل الصفوف بما فيها المكررة.

الشروط اللازمة لاستخدام UNION:

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

بناء الجملة (Syntax)

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

ملاحظة: أسماء الأعمدة في النتيجة عادةً تكون مساوية لأسماء الأعمدة في أول جملة SELECT.

قاعدة بيانات التجربة

في هذا الدرس نستخدم قاعدة البيانات الشهيرة Northwind التي تحتوي على جدول العملاء (Customers) والموردين (Suppliers).

جدول Customers

CustomerID CustomerName ContactName Address City PostalCode Country
1Alfreds 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

جدول Suppliers

SupplierID SupplierName ContactName Address City PostalCode Country
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

الاستعلام التالي يعرض جميع المدن (قيم مميزة فقط) من جدول Customers و Suppliers:

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

UNION مع شرط WHERE

يمكنك استخدام شرط WHERE لتحديد بيانات معينة من كلا الجدولين:

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

مثال آخر على UNION مع استخدام Alias

الاستعلام التالي يعرض جميع العملاء والموردين مع تحديد نوعهم:

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

ملاحظة: AS Type هو اسم مستعار للعمود لتوضيح نوع السجل.

تعليقات