عامل SQL UNION ALL

عامل SQL UNION ALL

عامل SQL UNION ALL

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

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

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

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

SELECT column_name(s) FROM table1
UNION ALL
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 ALL

الاستعلام التالي يعرض جميع المدن من جدول Customers و Suppliers، بما في ذلك القيم المكررة:

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

UNION ALL مع شرط WHERE

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

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

تمرين

ما هو الغرض الأساسي من استخدام عامل SQL UNION ALL؟

  • دمج نتائج استعلامين SELECT أو أكثر مع الاحتفاظ بكل الصفوف
  • إنشاء جدول جديد بدمج الأعمدة
  • تنفيذ Self Join
  • حذف الصفوف المكررة من جدول

تعليقات