فهرست سرفصل‌های MySQL
خانه (HOME) مقدمه (Intro) پایگاه داده رابطه ای (RDBMS) SQL (SQL) SELECT (SELECT) WHERE (WHERE) عملگرهای AND, OR, NOT (AND, OR, NOT) مرتب سازی (ORDER BY) افزودن رکورد (INSERT INTO) مقادیر NULL (NULL Values) بروزرسانی (UPDATE) حذف (DELETE) محدودیت تعداد (LIMIT) کمینه و بیشینه (MIN and MAX) COUNT، AVG، SUM (COUNT, AVG, SUM) LIKE (LIKE) کاراکترهای عام (Wildcards) IN (IN) BETWEEN (BETWEEN) نام های مستعار (Aliases) اتصال ها (Joins) INNER JOIN (INNER JOIN) LEFT JOIN (LEFT JOIN) RIGHT JOIN (RIGHT JOIN) CROSS JOIN (CROSS JOIN) خود-اتصالی (Self Join) UNION (UNION) UNION ALL (UNION ALL) گروه بندی (GROUP BY) HAVING (HAVING) EXISTS (EXISTS) ANY و ALL (ANY, ALL) INSERT SELECT (INSERT SELECT) CASE (CASE) توابع Null (Null Functions) کامنت ها (Comments) عملگرها (Operators) ایجاد پایگاه داده (Create DB) حذف پایگاه داده (Drop DB) ایجاد جدول (Create Table) حذف جدول (Drop Table) تغییر جدول (Alter Table) قیود (Constraints) Not Null (Not Null) منحصر به فرد (Unique) کلید اصلی (Primary Key) کلید خارجی (Foreign Key) CHECK (Check) پیش فرض (Default) ایندکس (Create Index) افزایش خودکار (Auto Increment) تاریخ ها (Dates) نماها (Views) انواع داده (Data Types) توابع (MySQL Functions) ASCII (ASCII) CHAR_LENGTH (CHAR_LENGTH) CHARACTER_LENGTH (CHARACTER_LENGTH) CONCAT (CONCAT) CONCAT_WS (CONCAT_WS) FIELD (FIELD) FIND_IN_SET (FIND_IN_SET) FORMAT (FORMAT) INSERT (INSERT) INSTR (INSTR) LCASE (LCASE) LEFT (LEFT) LENGTH (LENGTH) LOCATE (LOCATE) LOWER (LOWER) LPAD (LPAD) LTRIM (LTRIM) MID (MID) POSITION (POSITION) REPEAT (REPEAT) REPLACE (REPLACE) REVERSE (REVERSE) RIGHT (RIGHT) RPAD (RPAD) RTRIM (RTRIM) SPACE (SPACE) STRCMP (STRCMP) SUBSTR (SUBSTR) SUBSTRING (SUBSTRING) SUBSTRING_INDEX (SUBSTRING_INDEX) TRIM (TRIM) UCASE (UCASE) UPPER (UPPER) ABS (ABS) ACOS (ACOS) ASIN (ASIN) ATAN (ATAN) ATAN2 (ATAN2) AVG (AVG) CEIL (CEIL) CEILING (CEILING) COS (COS) COT (COT) COUNT (COUNT) DEGREES (DEGREES) DIV (DIV) EXP (EXP) FLOOR (FLOOR) GREATEST (GREATEST) LEAST (LEAST) LN (LN) LOG (LOG) LOG10 (LOG10) LOG2 (LOG2) MAX (MAX) MIN (MIN) MOD (MOD) PI (PI) POW (POW) POWER (POWER) RADIANS (RADIANS) RAND (RAND) ROUND (ROUND) SIGN (SIGN) SIN (SIN) SQRT (SQRT) SUM (SUM) TAN (TAN) TRUNCATE (TRUNCATE) ADDDATE (ADDDATE) ADDTIME (ADDTIME) CURDATE (CURDATE) CURRENT_DATE (CURRENT_DATE) CURRENT_TIME (CURRENT_TIME) CURRENT_TIMESTAMP (CURRENT_TIMESTAMP) CURTIME (CURTIME) DATE (DATE) DATEDIFF (DATEDIFF) DATE_ADD (DATE_ADD) DATE_FORMAT (DATE_FORMAT) DATE_SUB (DATE_SUB) DAY (DAY) DAYNAME (DAYNAME) DAYOFMONTH (DAYOFMONTH) DAYOFWEEK (DAYOFWEEK) DAYOFYEAR (DAYOFYEAR) EXTRACT (EXTRACT) FROM_DAYS (FROM_DAYS) HOUR (HOUR) LAST_DAY (LAST_DAY) LOCALTIME (LOCALTIME) LOCALTIMESTAMP (LOCALTIMESTAMP) MAKEDATE (MAKEDATE) MAKETIME (MAKETIME) MICROSECOND (MICROSECOND) MINUTE (MINUTE) MONTH (MONTH) MONTHNAME (MONTHNAME) NOW (NOW) PERIOD_ADD (PERIOD_ADD) PERIOD_DIFF (PERIOD_DIFF) QUARTER (QUARTER) SECOND (SECOND) SEC_TO_TIME (SEC_TO_TIME) STR_TO_DATE (STR_TO_DATE) SUBDATE (SUBDATE) SUBTIME (SUBTIME) SYSDATE (SYSDATE) TIME (TIME) TIME_FORMAT (TIME_FORMAT) TIME_TO_SEC (TIME_TO_SEC) TIMEDIFF (TIMEDIFF) TIMESTAMP (TIMESTAMP) TO_DAYS (TO_DAYS) WEEK (WEEK) WEEKDAY (WEEKDAY) WEEKOFYEAR (WEEKOFYEAR) YEAR (YEAR) YEARWEEK (YEARWEEK) BIN (BIN) BINARY (BINARY) CASE (CASE) CAST (CAST) COALESCE (COALESCE) CONNECTION_ID (CONNECTION_ID) CONV (CONV) CONVERT (CONVERT) CURRENT_USER (CURRENT_USER) DATABASE (DATABASE) IF (IF) IFNULL (IFNULL) ISNULL (ISNULL) LAST_INSERT_ID (LAST_INSERT_ID) NULLIF (NULLIF) SESSION_USER (SESSION_USER) SYSTEM_USER (SYSTEM_USER) USER (USER) VERSION (VERSION) مثال ها (MySQL Examples) ویرایشگر (MySQL Editor) آزمون (MySQL Quiz) تمارین (MySQL Exercises) سرفصل (MySQL Syllabus) برنامه مطالعه (MySQL Study Plan) گواهینامه (MySQL Certificate)
نتیجه‌ای برای جستجو یافت نشد.
MySQL

MySQL — RIGHT JOIN (RIGHT JOIN)

آخرین بروزرسانی: 1404/08/18

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;

مشاهده در ادیتور

گام های سریع تمرین

  1. ستون های خروجی را مشخص کن؛ مثلاً نام ها.
  2. FROM را روی جدول مرتبط قرار بده.
  3. RIGHT JOIN را با جدول اصلی کارکنان بنویس.
  4. شرط ON را با کلیدها برابر کن.
  5. در پایان با ORDER BY مرتب کن.

برای مقایسه دقیق، صفحه LEFT JOIN را ببین. همچنین رفتار جوین راست را با CROSS JOIN مقایسه کن تا تفاوت ها روشن شوند.

جمع بندی سریع

  • جوین راست همه ردیف های جدول راست را نگه می دارد.
  • نبود همتا در چپ یعنی ستون های چپ NULL هستند.
  • برای گزارش «همه اعضا» عالی است.
  • شرط ON باید دقیق و کلیدی باشد.
  • مرتب سازی خروجی خوانایی را بهتر می کند.