اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

نستخدم الربط الذاتي self join  عندما نريد الربط بين عناصر من نفس الجدول ويكون لها علاقة بينهم، مثل عمل استعلام يظهر أسماء الموظفين مع أسماء مردائهم، كما ترى جميع الموظفين والمدراء موجودين في نفس الجدول (جدول الموظفين)

لذلك نعمل استعلام يدمج الجدول بنفسه ويتم الربط بناءً على أن رقم المدير لموظف ما هو نفسه رقم معرف أحد الموظفين..

الشكل العام:

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
  • لاحظ أن اسم الجدول يظهر مرتين في عبارة الدمج join 
  • نأخذ اسمين مستعارين لنفس الجدول ونطبق الشرط عليهم
  • يمكن استخدام INNER JOIN أو LEFT JOIN
select 
	e1.Name As Employee Name,
	e2.Name As Boss

from employees e1
    
inner join employees e2 

on e1.Boss_id = e2.Id

جلبنا اسم الموظف واسم المدير من علاقة الربط، حيث أن معرف رقم المدير للموظف من أول نسخة من الجدول تقابل معرف موظف من النسخة الثانية للجدول

مثلا استعلام آخر لمعرفة الموظفين من نفس المدينة:

select 
	e1.Name As Employee1,
	e2.Name As Employee2,
	e1.city As City Name

from employees e1
    
inner join employees e2 

on e1.city = e2.city

ORDER BY e1.City; // مفيدة للترتيب

 

 

  • 1
نشر

اصطلاحات الربط

الربط بشكل عام يستخدم للربط بين البيانات (بغض النظر عن مكان وجودها)، أي نوع من أنواع الربط هو اصطلاح وتسمية لمكان وجود البيانات في كلا طرفي الربط

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

عندما تكون البيانات في كلا الطرفين موجودة في نفس الجدول نصطلح أن نوع الربط هذا هو Self Join أي أننا نربط بيانات الجدول ببيانات أخرى من الجدول نفسه،

sql-self-join.PNG.920565ca2e8c43ddc16821c742ae989a.PNG

أمثلة: 

  • جدول أشخاص، قد يكون هناك علاقة بين الأشخاص (أب - أبن، زوج - زوجة، صديق - صديق)
  • جدول موظفين، قد يكون هناك علاقات بين الموظفين (موظف - مدير، موظف - زملاء)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...