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