الانضمام الذاتي في SQL (Self Join)
الانضمام الذاتي (Self Join) هو نوع من الانضمام العادي، لكنه يتم على نفس الجدول نفسه. يُستخدم هذا النوع للعثور على علاقات بين الصفوف داخل نفس الجدول، مثل العملاء الذين يعيشون في نفس المدينة، أو الموظفين في نفس القسم.
بناء الجملة (Syntax)
SELECT column_name(s) FROM table1 T1, table1 T2 WHERE condition;
حيث T1 و T2 هما أسماء مستعارة (alias) مختلفة لنفس الجدول، لتسهيل الإشارة إلى الصفوف المختلفة من نفس الجدول.
قاعدة بيانات التجربة
في هذا الدرس نستخدم قاعدة البيانات الشهيرة Northwind.
جدول 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 |
مثال على الانضمام الذاتي
الاستعلام التالي يطابق العملاء الذين يعيشون في نفس المدينة:
SELECT A.CustomerName AS CustomerName1,
B.CustomerName AS CustomerName2,
A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;
في هذا المثال:
- تم استخدام alias (A و B) لتمثيل الجدول نفسه مرتين.
- الشرط A.CustomerID <> B.CustomerID يمنع مطابقة الصف مع نفسه.
- الشرط A.City = B.City يبحث عن العملاء في نفس المدينة.
متى نستخدم الانضمام الذاتي؟
- للعثور على علاقات بين صفوف نفس الجدول.
- للكشف عن التكرارات أو المطابقات بين الصفوف.
- لعمل تقارير مقارنة بين صفوف مختلفة من نفس الجدول.
تمرين
ما الغرض من الانضمام الذاتي في SQL؟
- للانضمام بين جدول وآخر
- للانضمام بين الجدول ونفسه ✅
- لإنشاء جدول جديد بدمج الأعمدة
- لعمل FULL OUTER JOIN
تعليقات
إرسال تعليق