الربط الذاتي (Self Join)
جزء من قسم الأساسيات في رحلة SQL على Coddy — الدرس 46 من 72.
تعد عمليات الربط الذاتي (Self-joins) أنواعاً مختلفة من عمليات الربط. حتى الآن، تحدثنا عن عمليات الربط بين جداول متعددة، ولكن عمليات الربط الذاتي يتم فيها الربط مع الجدول نفسه. مثال كلاسيكي على ذلك هو جدول employees.
| employee_id | employee_name | manager_id |
| 1 | مينكي | 2 |
| 2 | تيمور | 3 |
| 3 | تاتيانا | 4 |
| 4 | مارينيلا |
كل موظف لديه مدير باستثناء المدير الأعلى، وكل مدير هو أيضاً موظف.
المشكلة: لكل موظف نريد معرفة اسم المدير.
SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_idنقوم بالربط بين نفس الجدول إلا أننا في المرة الأولى نسميه e1 وفي المرة الثانية نسميه e2. الربط يتم بين الحقلين employee_id و manager_id.
النتيجة:
| رقم_الموظف | اسم_الموظف | اسم_المدير |
|---|---|---|
| 1 | مينكي | تيمور |
| 2 | تيمور | تاتيانا |
| 3 | تاتيانا | مارينيلا |
التحدي
متوسطالجداول والأعمدة المتاحة:
<strong>friends</strong>:<strong>id</strong>,<strong>name</strong>,<strong>friend_id</strong>
ابحث عن أزواج الأصدقاء الذين هم أصدقاء متبادلون (توجد صداقة متبادلة عندما يشير friend_id للشخص A إلى الشخص B ويشير friend_id للشخص B إلى الشخص A). اعرض أسماء كلا الصديقين في صف واحد. قم بتسمية الأعمدة friend1 و friend2.
ملاحظة: قم بتضمين المعيار friend1.id < friend2.id في جملة WHERE حتى لا يتم تضمين أزواج مكررة
ورقة مرجعية
تسمح عمليات الربط الذاتي (Self-joins) بربط جدول بنفسه باستخدام أسماء مستعارة للجداول (table aliases). هذا مفيد عندما تحتاج إلى مقارنة الصفوف داخل نفس الجدول أو إنشاء علاقات بين السجلات في نفس الجدول.
الصيغة الأساسية للربط الذاتي:
SELECT columns
FROM table_name AS alias1
JOIN table_name AS alias2 ON alias1.column = alias2.columnمثال مع الموظفين والمديرين:
SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_idالنقاط الرئيسية:
- استخدم أسماء مستعارة مختلفة (مثل
e1،e2) لنفس الجدول - يربط شرط الربط (Join condition) بين الحقول ذات الصلة بين الأسماء المستعارة
- مفيد للبيانات الهرمية مثل علاقات الموظف والمدير
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGE