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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。