في لغة SQL، تُستخدم عبارة RIGHT JOIN (أو RIGHT OUTER JOIN) لدمج صفوف من جدولين أو أكثر بناءً على شرط مُحدد. الفرق الرئيسي بين RIGHT JOIN و LEFT JOIN هو أن RIGHT JOIN تُرجع جميع الصفوف من الجدول الأيمن (الجدول الثاني المذكور بعد RIGHT JOIN)، بالإضافة إلى الصفوف المطابقة من الجدول الأيسر (الجدول الأول). إذا لم يكن هناك تطابق في الجدول الأيسر لصف معين في الجدول الأيمن، فستكون قيم أعمدة الجدول الأيسر NULL.

الصيغة العامة:

SQL
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
  • table1: الجدول الأيسر.
  • table2: الجدول الأيمن.
  • column_name: اسم العمود المُستخدم للربط بين الجدولين (يجب أن يكون موجودًا في كلا الجدولين).
  • ON: الكلمة المفتاحية التي تُحدد شرط الربط.

شرح مفصل مع مثال:

لنفترض أن لدينا جدولين: Customers (العملاء) و Orders (الطلبات).

جدول Customers:

CustomerIDCustomerNameCity
1أحمدالرياض
2محمدجدة
3خالدالدمام
4عليمكة

جدول Orders:

OrderIDCustomerIDOrderDate
10112023-10-26
10222023-10-27
10322023-10-28
10452023-10-29

الآن، إذا أردنا عرض جميع الطلبات مع معلومات العملاء الذين قاموا بها، حتى لو لم يكن هناك عميل مُرتبط بطلب معين (كما في حالة CustomerID رقم 5)، نستخدم RIGHT JOIN:

SQL
SELECT Customers.CustomerName, Orders.OrderID, Orders.OrderDate
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

النتيجة:

CustomerNameOrderIDOrderDate
أحمد1012023-10-26
محمد1022023-10-27
محمد1032023-10-28
NULL1042023-10-29

كما نرى، تم عرض جميع الطلبات من جدول Orders. بالنسبة للطلب رقم 104، لم يكن هناك عميل مطابق في جدول Customers، لذلك كانت قيمة CustomerName هي NULL.

متى نستخدم RIGHT JOIN؟

يُستخدم RIGHT JOIN عندما نريد التأكد من عرض جميع الصفوف من الجدول الأيمن، بغض النظر عن وجود تطابق في الجدول الأيسر أم لا. هذا مُفيد في الحالات التالية:

  • عند تحليل البيانات من وجهة نظر الجدول الأيمن.
  • عند البحث عن البيانات المفقودة في الجدول الأيسر.
  • عند إنشاء تقارير تتطلب عرض جميع بيانات جدول معين مع معلومات إضافية من جدول آخر.

ملاحظات:

  • يُمكن استخدام RIGHT OUTER JOIN بدلاً من RIGHT JOIN. كلاهما يُعطي نفس النتيجة.
  • في بعض أنظمة قواعد البيانات، قد لا يكون RIGHT JOIN مدعومًا بشكل مباشر. في هذه الحالة، يُمكن تحقيق نفس النتيجة باستخدام LEFT JOIN مع تبديل ترتيب الجداول. على سبيل المثال، الاستعلام السابق يُمكن كتابته كالتالي باستخدام LEFT JOIN:
SQL
SELECT Customers.CustomerName, Orders.OrderID, Orders.OrderDate
FROM Orders
LEFT JOIN Customers ON Customers.CustomerID = Orders.CustomerID;

مع الانتباه إلى تبديل أماكن الجدولين في عبارة FROM.

باختصار، RIGHT JOIN أداة قوية في SQL تُمكنك من دمج البيانات من جدولين مع التركيز على عرض جميع بيانات الجدول الأيمن. فهمها واستخدامها بشكل صحيح يُساعدك على كتابة استعلامات SQL فعالة ودقيقة.