📊 فهم RIGHT JOIN في SQL: دليل شامل للمبتدئين
RIGHT JOIN هو أحد أنواع عمليات الدمج (JOIN) في SQL الذي يسمح لك بدمج صفوف من جدولين بناءً على شرط محدد. الهدف الرئيسي منه هو إرجاع جميع السجلات من الجدول الأيمن (Right Table) بالإضافة إلى السجلات المتطابقة من الجدول الأيسر (Left Table).
🔍 ما هو RIGHT JOIN؟
RIGHT JOIN يعمل بطريقة معاكسة لـ LEFT JOIN. حيث يقوم بإرجاع:
- جميع الصفوف من الجدول الأيمن (الثاني في الاستعلام)
- الصفوف المتطابقة من الجدول الأيسر (الأول في الاستعلام)
- أما الصفوف غير المتطابقة من الجدول الأيسر فتحتوي على قيم NULL
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
🎯 البنية الأساسية لـ RIGHT JOIN
لنفهم بنية RIGHT JOIN من خلال المثال التالي:
SELECT employees.name, departments.department_name
FROM departments
RIGHT JOIN employees ON departments.id = employees.department_id;
في هذا المثال:
departmentsهو الجدول الأيسرemployeesهو الجدول الأيمن- سيتم إرجاع جميع الموظفين حتى لو لم يكونوا مرتبطين بأي قسم
📝 مثال عملي مع شرح مفصل
لنفترض أن لدينا جدولين:
جدول الموظفين (employees):
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
department_id INT
);
جدول الأقسام (departments):
CREATE TABLE departments (
id INT PRIMARY KEY,
department_name VARCHAR(100)
);
SELECT e.name, d.department_name
FROM departments d
RIGHT JOIN employees e ON d.id = e.department_id;
النتيجة ستظهر جميع الموظفين، حتى أولئك الذين ليس لديهم قسم معين (سيظهر NULL في department_name).
⚠️ الفروق بين RIGHT JOIN وأنواع JOIN الأخرى
- INNER JOIN: يرجع فقط الصفوف المتطابقة من كلا الجدولين
- LEFT JOIN: يرجع جميع الصفوف من الجدول الأيسر والصفوف المتطابقة من الجدول الأيمن
- RIGHT JOIN: يرجع جميع الصفوف من الجدول الأيمن والصفوف المتطابقة من الجدول الأيسر
- FULL JOIN: يرجع جميع الصفوف عندما يكون هناك تطابق في أي من الجدولين
💡 نصائح عملية لاستخدام RIGHT JOIN
- تأكد من فهم أي جدول هو الأيمن وأي جدول هو الأيسر في الاستعلام
- استخدم الأسماء المستعارة (Aliases) لتسهيل قراءة الاستعلام
- تحقق دائماً من وجود قيم NULL في النتائج المتوقعة
- RIGHT JOIN أقل استخداماً من LEFT JOIN في التطبيقات العملية
SELECT e.name AS employee_name,
COALESCE(d.department_name, 'لا يوجد قسم') AS department
FROM departments d
RIGHT JOIN employees e ON d.id = e.department_id;
🎓 اختبر معلوماتك
السؤال 1 من 30% أكملت
ما هو الهدف الرئيسي من استخدام RIGHT JOIN في SQL؟
آخر تحديث: ٢٩ أبريل ٢٠٢٦
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال
جاري تحميل التعليقات...