SQL RIGHT JOIN Keyword

زبان SQL برای اینکه همه رکوردهای جدول سمت راست نمایش داده بشن (حتی اگه در جدول سمت چپ دادهٔ مطابق نداشته باشن)، از RIGHT JOIN یا RIGHT OUTER JOIN استفاده می‌کنیم.

🔹 ساختار کلی

SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
  • تمام رکوردهای جدول سمت راست (table2) انتخاب می‌شن.

  • اگر در جدول سمت چپ (table1) مقدار مطابق وجود داشته باشه، نمایش داده میشه.

  • اگر مطابق وجود نداشته باشه، مقادیر ستون‌های جدول سمت چپ NULL خواهند بود.

🔹 مثال ساده

جدول: Customers

idnamecity
1AliTehran
2SaraMashhad
3RezaTabriz

جدول: Orders

order_idcustomer_idamount
1011500
1022300
1034700

کوئری:

SELECT Customers.name, Orders.amount FROM Customers RIGHT JOIN Orders ON Customers.id = Orders.customer_id;

📌 خروجی:

nameamount
Ali500
Sara300
NULL700

توضیح: سفارش با customer_id = 4 مشتری مرتبطی در جدول Customers نداره، ولی چون از RIGHT JOIN استفاده شده، باز هم در خروجی اومده و مقدار name براش NULL شده.

🔹 استفاده از Alias

SELECT c.name, o.amount FROM Customers c RIGHT JOIN Orders o ON c.id = o.customer_id;

🔹 RIGHT JOIN در مقابل LEFT JOIN

  • LEFT JOIN همه رکوردهای جدول سمت چپ رو میاره.

  • RIGHT JOIN همه رکوردهای جدول سمت راست رو میاره.

  • در عمل، این دو معادل هم هستن؛ فقط بستگی داره کدوم جدول رو به عنوان سمت اصلی در نظر بگیری.

نکات مهم

  • RIGHT JOIN و RIGHT OUTER JOIN یکی هستن (OUTER اختیاریه).

  • بیشتر برنامه‌نویس‌ها ترجیح میدن به جای RIGHT JOIN از LEFT JOIN استفاده کنن (چون خوانایی بالاتری داره).

  • در دیتابیس‌هایی مثل MySQL، Oracle، SQL Server همه به همین شکل پشتیبانی میشه.