5.6 SQL - SELF JOIN
جملة SQL SELF JOIN
الـ SELF JOIN هو نوع خاص من أنواع الـ JOIN، بيستخدم نفس الجدول مرتين في نفس الاستعلام.
يعني بنعمل JOIN للجدول مع نفسه، وكأنهم جدولين منفصلين.
ملاحظات:
- بنستخدم أسماء مستعارة (Aliases) علشان نميّز بين النسختين من الجدول.
- مفيد جدًا لما يكون عندك علاقات داخلية بين الصفوف (زي موظف ومديره في نفس الجدول).
الصيغة (Syntax):
بالطريقة الكلاسيكية:
SELECT A.column_name, B.column_name
FROM table_name A, table_name B
WHERE condition;
أو بطريقة JOIN الصريحة:
SELECT A.column_name, B.column_name
FROM table_name A
INNER JOIN table_name B ON A.common_field = B.common_field;
مثال عملي:
نفترض إن عندنا جدول اسمه Employees:
| EmployeeID | Name | ManagerID |
|---|---|---|
| 1 | Mahmoud | NULL |
| 2 | Sara | 1 |
| 3 | Ali | 1 |
| 4 | Mona | 2 |
علشان نعرض كل موظف ومديره:
SELECT E1.Name AS Employee, E2.Name AS Manager
FROM Employees E1
LEFT JOIN Employees E2 ON E1.ManagerID = E2.EmployeeID;
النتيجة المتوقعة:
| Employee | Manager |
|---|---|
| Mahmoud | NULL |
| Sara | Mahmoud |
| Ali | Mahmoud |
| Mona | Sara |
متى تستخدم SELF JOIN؟
- لو عندك علاقة هرمية داخل نفس الجدول، زي موظف ومديره، أو منتج ومجموعة رئيسية.
- لو محتاج تقارن صفين من نفس الجدول.
تعليقات
إرسال تعليق