MySQL 的 RIGHT JOIN
子句返回右表中的所有行以及左表中的匹配記錄。 NULL
將用於左表中沒有匹配記錄的記錄。 RIGHT JOIN
也稱為 RIGHT OUTER JOIN
。
用法
SELECT column_name(s)
FROM left_table
RIGHT JOIN right_table
ON left_table.column = right_table.column;
例子
請考慮下表,了解一些客戶購買的產品:
ID |
產品 |
bought_by |
---|---|---|
1 |
computer |
1 |
2 |
吹風機 |
3 |
可以使用此處的代碼創建上述示例表。
另請考慮包含客戶信息的下表:
ID |
名字 |
年齡 |
---|---|---|
1 |
alex |
15 |
2 |
bob |
25 |
3 |
cathy |
30 |
可以使用此處的代碼創建上述示例表。
基本用法
要執行 RIGHT JOIN
,其中 product
作為左表,customer
作為右(主)表:
SELECT c.id, c.name, c.age, p.name AS product_name
FROM product p
RIGHT JOIN customer c
ON c.id = p.bought_by;
+----+-----------+------+--------------+
| id | name | age | product_name |
+----+-----------+------+--------------+
| 1 | alex | 15 | computer |
| 3 | cathy | 30 | hair dryer |
| 2 | bob | 25 | NULL |
+----+-----------+------+--------------+
我們返回右表 customer
中的所有三個客戶記錄以及他們從 product
(左表)購買的相應產品。由於 bob 尚未購買任何產品,因此返回 NULL
作為其對應的 product_name
值。
注意
我們還可以使用兩個以上的表執行RIGHT JOIN
。但是,始終會有一個主表(其所有行都將出現在結果中),而其他表將是次要的(僅當存在匹配的 else NULL
時才會出現行)。
相關用法
- MySQL RIGHT()用法及代碼示例
- MySQL RIGHT方法用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL RADIANS方法用法及代碼示例
- MySQL REGEXP_INSTR()用法及代碼示例
- MySQL RPAD()用法及代碼示例
- MySQL RLIKE用法及代碼示例
- MySQL REGEX用法及代碼示例
- MySQL REGEXP_SUBSTR()用法及代碼示例
- MySQL REGEXP_INSTR方法用法及代碼示例
- MySQL ROW_NUMBER()用法及代碼示例
- MySQL REPLACE()用法及代碼示例
- MySQL RTRIM方法用法及代碼示例
- MySQL RADIANS()用法及代碼示例
- MySQL REPEAT方法用法及代碼示例
- MySQL REGEXP_LIKE方法用法及代碼示例
- MySQL REPLACE方法用法及代碼示例
- MySQL ROUND方法用法及代碼示例
- MySQL RAND()用法及代碼示例
- MySQL REVERSE()用法及代碼示例
- MySQL REGEXP_REPLACE方法用法及代碼示例
- MySQL REGEXP_REPLACE()用法及代碼示例
- MySQL RPAD方法用法及代碼示例
- MySQL RAND方法用法及代碼示例
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | RIGHT JOIN。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。