شرح صفوف ومحتوى الفقرة
لا توجد كلمة مفتاحية مستقلة باسم SELF JOIN في لغة SQL؛ بل يُكتب الربط الذاتي باستخدام INNER JOIN أو LEFT JOIN العادي لربط الجدول بنفسه، مع شرط إلزامي هو منح الجدول اسمين مستعارين مختلفين:
- إلزامية الأسماء المستعارة: تؤدي كتابة
FROM employees JOIN employeesبدون أسماء مستعارة إلى توقف الاستعلام بالخطأ رقم 1066 لتكرار اسم الجدول. - اختيار الربط الداخلي أو الأيسر: استخدم
INNER JOINلعرض الموظفين الذين لديهم مدير فقط، واستخدمLEFT JOINمعCOALESCE()لإظهار المدير العام أو الأقسام الجذرية التي تكون قيمةmanager_idفيهاNULL.
SQL
-- Pair every employee (e) with their manager (m) via Self Join
SELECT
e.emp_id,
e.emp_name AS employee_name,
COALESCE(m.emp_name, 'Executive Board') AS manager_name
FROM employees AS e
LEFT JOIN employees AS m
ON e.manager_id = m.emp_id
ORDER BY e.emp_id;