Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الربط الذاتي (Self Join)

جزء من قسم الأساسيات في رحلة SQL على Coddy — الدرس 46 من 72.

تعد عمليات الربط الذاتي (Self-joins) أنواعاً مختلفة من عمليات الربط. حتى الآن، تحدثنا عن عمليات الربط بين جداول متعددة، ولكن عمليات الربط الذاتي يتم فيها الربط مع الجدول نفسه. مثال كلاسيكي على ذلك هو جدول employees.

employee_idemployee_namemanager_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تاتيانامارينيلا
challenge icon

التحدي

متوسط

الجداول والأعمدة المتاحة:

  • <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 حتى لا يتم تضمين أزواج مكررة 

جرّب بنفسك

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات