RIGHT JOIN (RIGHT JOIN)
در «جوین راست (Right Join)» همه ردیف های جدول راست برمی گردند. ردیف های جدول چپ فقط در صورت تطابق می آیند. «تطابق (Match)» یعنی مقدار کلیدها برابر باشد. مثل فهرست کارمندان و سفارش ها؛ همه کارمندان دیده می شوند، حتی بدون سفارش.
نحوه کار جوین راست
با RIGHT JOIN از جدول راست شروع می کنیم. سپس با شرط ON تعیین می کنیم کدام ستون ها باید برابر باشند. اگر همتایی در جدول چپ نبود، ستون های چپ NULL می شوند. این برای گزارش های «همه اعضا» خیلی مناسب است.
سینتکس استاندارد
SELECT column_name(s);
FROM table1;
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
نکته: جوین راست همیشه همه ردیف های جدول راست را می آورد؛ حتی بدون تطابق.
مثال کاربردی با Orders و Employees
می خواهیم همه کارمندان را ببینیم. اگر سفارشی ثبت کرده اند، شماره سفارش هم بیاید. اگر نه، ستون سفارش تهی می ماند. این دقیقاً نیاز گزارش «کارمندان و سفارش ها» است.
SELECT Orders.OrderID,
Employees.LastName,
Employees.FirstName;
FROM Orders;
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID;
ORDER BY Orders.OrderID;
گام های سریع تمرین
- ستون های خروجی را مشخص کن؛ مثلاً نام ها.
- FROM را روی جدول مرتبط قرار بده.
- RIGHT JOIN را با جدول اصلی کارکنان بنویس.
- شرط ON را با کلیدها برابر کن.
- در پایان با ORDER BY مرتب کن.
برای مقایسه دقیق، صفحه LEFT JOIN را ببین. همچنین رفتار جوین راست را با CROSS JOIN مقایسه کن تا تفاوت ها روشن شوند.
جمع بندی سریع
- جوین راست همه ردیف های جدول راست را نگه می دارد.
- نبود همتا در چپ یعنی ستون های چپ NULL هستند.
- برای گزارش «همه اعضا» عالی است.
- شرط ON باید دقیق و کلیدی باشد.
- مرتب سازی خروجی خوانایی را بهتر می کند.