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:

EmployeeIDNameManagerID
1MahmoudNULL
2Sara1
3Ali1
4Mona2

علشان نعرض كل موظف ومديره:

SELECT E1.Name AS Employee, E2.Name AS Manager
FROM Employees E1
LEFT JOIN Employees E2 ON E1.ManagerID = E2.EmployeeID;


النتيجة المتوقعة:

EmployeeManager
MahmoudNULL
SaraMahmoud
AliMahmoud
MonaSara


متى تستخدم SELF JOIN؟

  • لو عندك علاقة هرمية داخل نفس الجدول، زي موظف ومديره، أو منتج ومجموعة رئيسية.
  • لو محتاج تقارن صفين من نفس الجدول.

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework