أساسيات SQL Server: استخدام الالتحاق الذاتي في SQL

A self join in SQL Server is a useful statement to use for demonstrating relationships within a single SQL Server table database. In this tutorial, I’ll show you when and how to use an SQL self join. To do that, I’ll be detailing an sql self join example where I’ll list the supervisors for all employees in the Northwind Employees sample table. 

ما هو الانضمام الذاتي في SQL؟

الـانضمام الذاتي هو نوع خاص ونوعي إلى حد ما من انضمام SQL. بينما يقوم معظم الانضمامات مثل الانضمام الداخلي بربط جداول مختلفة بواسطة أعمدتها المشتركة، يقوم الانضمام الذاتي بربط جدول بنفسه. على عكس عمليات الانضمام العادية، يتم استخدام نفس الجدول ككل من الجدول الأيسر والجدول الأيمن في عملية الانضمام.

إعلان

على سبيل المثال، قد تستخدم الانضمام الذاتي للعثور على جميع الموظفين الذين لديهم نفس المدير. هنا قد تقوم بمطابقة معرف المدير بمعرف الموظف. بالإضافة إلى ذلك، يمكنك استخدام الانضمام الذاتي للعثور على جميع العملاء الذين لديهم طلبات لنفس المنتجات.

مثال على الانضمام الذاتي في SQL

تُظهر الاستعلام التالي مثالًا على الكود SQL للانضمام الذاتي باستخدام قاعدة البيانات العينية Northwind. اسم الجدول هو ‘الموظفين’ وكما قد تتوقع، يحتوي على بيانات الموظفين.

USE Northwind
SELECT e1.EmployeeID, e1.FirstName, e1.LastName, e1.ReportsTo,
    e2.FirstName as ManagerFirstName, e2.LastName as ManagerLastName
FROM Employees e1 LEFT OUTER JOIN Employees e2 on e1.ReportsTo = e2.EmployeeID

سيظهر هذا المثال على الانضمام الذاتي في SQL أسماء المشرفين لكل موظف.

  • هنا، نقوم بالانضمام إلى جدول الموظفين بنفسه باستخدام عمود ‘التقارير إلى’ وعمود ‘معرف الموظف’. نظرًا لأن المشرفين هم أيضًا موظفين، فإنهم مدرجون في نفس جدول الموظفين.
  • في هذه الحالة، يجب أن تتطابق القيم في عمود ‘التقارير إلى’ مع القيم في عمود ‘معرف الموظف’.
  • في مجموعة النتائج، سيتم إعادة تسمية أعمدة ‘الاسم الأول’ و ‘الاسم الأخير’ في الجدول المندمج بنفسه إلى ‘اسم مدير أول’ و ‘اسم مدير أخير’.
  • يستخدم جدول معرف الموظفين اختصار جدول ‘e1’ بينما يستخدم جدول الانضمام بنفسه اختصار جدول ‘e2’.
  • بنية الانضمام بنفسه في SQL الفعلية هي LEFT OUTER JOIN. تحدد العبارة ON الأعمدة التي ستستخدم في الانضمام بنفسه.

يمكنك رؤية نتيجة استعلام الانضمام بنفسه في الصورة التالية:

إعلان

SQL self join example (Image credit: Petri/Michael Otey)

سيُرجع هذا الاستعلام مجموعة نتائج تتضمن معرف الموظف، الاسم الأول، الاسم الأخير، التقارير إلى (معرف الموظف)، اسم مدير أول، وتفاصيل اسم مدير أخير. إذا فحصت مجموعة النتائج، يمكنك رؤية أن أندرو فولر لديه معرف موظف 2 وأنه أيضًا المشرف لمعرف الموظف 1، 3، 4، 5 و 8. أندرو فولر لا يقدم تقارير لأي شخص آخر، لذلك تكون قيمة تقاريره وأسماء مديره الأول والأخير جميعها NULL.

متى يجب عليك استخدام انضمام الـ SQL بنفسه؟

يجب عليك حقًا استخدام الانضمام الذاتي عندما يشير جدول SQL إلى البيانات في نفسه. كما شرحت في هذه المقالة، يمكن أن يكون الانضمام الذاتي في SQL حالة استخدام رائعة لجدول يحتوي على بيانات الموظفين حيث تحتوي كل صف على معلومات حول الموظفين ومديريهم. في هذه الحالة، يتيح لك الانضمام الذاتي سهولة استعراض المعلومات ذات الصلة حول كيفية عمل المؤسسة.

Source:
https://petri.com/sql-self-join/