سلسلة دروس SQL| عبارة UNION
هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس
- عبارة UNION في SQL
- بناء جملة UNION
- بناء جملة UNION ALL
- استعراض قاعدة البيانات
- مثال عن UNION
- مثال عن UNION ALL
- عبارة UNION مع WHERE في SQL
- عبارة UNION ALL مع WHERE في SQL
- مثال آخر عن UNION
عبارة UNION في SQL
تُستخدم عبارة UNION لدمج مجموعة النتائج لعبارتي SELECT أو أكثر.
-
يجب أن يكون لكل عبارة SELECT داخل UNION نفس عدد الأعمدة
-
يجب أن تحتوي الأعمدة أيضًا على أنواع بيانات متشابهة
-
يجب أن تكون الأعمدة في كل عبارة SELECT بنفس الترتيب
بناء جملة UNION
1
2
3
4
5
6
7
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
بناء جملة UNION ALL
تعرض عبارة UNION القيم المختلفة فقط (دون تكرار) بشكل افتراضي. استخدم UNION ALL للسماح بقيم مكررة:
1
2
3
4
5
6
7
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
ملاحظة: عادةً ما تكون أسماء الأعمدة في مجموعة النتائج مساوية لأسماء الأعمدة في عبارة SELECT الأولى في UNION.
استعراض قاعدة البيانات
سنستخدم في هذا الدرس قاعدة البيانات النموذجية المعروفة Northwind.
فيما يلي تحديد من جدول “العملاء”:
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 |
و تحديد من جدول “المُوَرِّدين”:
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 |
مثال عن UNION
تُرجع عبارة SQL التالية جميع المدن (القيم المختلفة فقط) من كلا جدولي “العملاء” و”المورِّدين”:
1
2
3
4
5
6
7
8
9
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
ملاحظة: إذا كان لدى بعض العملاء أو الموردين نفس المدينة ، فسيتم إدراج كل مدينة مرة واحدة فقط ، لأن UNION تحدد القيم المميزة فقط. استخدم UNION ALL لتحديد القيم المكررة أيضًا!
مثال عن UNION ALL
تقوم عبارة SQL التالية بإرجاع المدن (القيم المكررة أيضًا) من كل من جدولي “العملاء” و”الموردين”:
1
2
3
4
5
6
7
8
9
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
عبارة UNION مع WHERE في SQL
تقوم عبارة SQL التالية بإرجاع المدن الألمانية (القيم المختلفة فقط) من كل من جدولي “العملاء” و”الموردين”:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
عبارة UNION ALL مع WHERE في SQL
تقوم عبارة SQL التالية بإرجاع المدن الألمانية (القيم المكررة أيضًا) من كل من جدولي “العملاء” و”الموردين”:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
مثال آخر عن UNION
يسرد بيان SQL التالي كافة العملاء والموردين:
1
2
3
4
5
6
7
8
9
10
11
SELECT 'Customer' As Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
لاحظ أن “AS Type” أعلاه عبارة عن اسم مستعار. تُستخدم الأسماء المستعارة في SQL لإعطاء جدول أو عمود اسمًا مؤقتًا ويكون صالح فقط أثناء تنفيذ الأمر. لذلك أنشأنا هنا عمودًا مؤقتًا باسم “Type” والذي يوضح فيما إذا كانت جهة الاتصال هي “عميل” أو “مورد”.
التالي: عبارة GROUP BY