عامل 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 |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
جدول Suppliers
| SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
| 2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
| 3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
مثال على 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
- حذف الصفوف المكررة من جدول
تعليقات
إرسال تعليق