RIGHT JOIN

简介: 【11月更文挑战第07天】

RIGHT JOIN(也称为 RIGHT OUTER JOIN)是一种 SQL 操作,用于结合两个或多个表中的行,即使左表中没有匹配的行。如果左表中没有匹配的行,则结果集中的左表部分将显示为 NULL

SQL RIGHT JOIN 语法

基本的 RIGHT JOIN 语法如下:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

这里的 column_name(s) 是你想要从连接的表中选择的列,table1 是左表,table2 是右表,table1.column_nametable2.column_name 是两个表中用于连接的共同列。

使用示例

假设我们有两个表:employeesdepartmentsemployees 表包含员工信息,departments 表包含部门信息。两个表通过 department_id 列相关联。

employees 表:

employee_id name department_id
1 John Doe 1
2 Jane Smith 2
3 Bob Johnson 1

departments 表:

department_id department_name
1 Sales
2 Marketing
3 IT

如果你想获取每个部门及其所有员工的列表,包括那些没有员工的部门,你可以使用 RIGHT JOIN 如下:

SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;

结果:

name department_name
John Doe Sales
Jane Smith Marketing
Bob Johnson Sales
NULL IT

这个查询将返回所有部门及其对应的员工名称,只有在 employees 表和 departments 表中都有匹配的 department_id 时才会返回结果。如果某个部门没有员工(即 department_idemployees 表中不存在),那么这个部门将出现在结果集中,而其 name 将显示为 NULL

另一个示例

假设我们有两个表:customersorderscustomers 表包含客户信息,orders 表包含订单信息。两个表通过 customer_id 列相关联。

customers 表:

customer_id customer_name
1 John Doe
2 Jane Smith
3 Alice Johnson

orders 表:

order_id order_date customer_id
1 2021-01-01 1
2 2021-01-02 2
3 2021-01-03 NULL

如果我们想要获取所有客户的列表,包括那些没有订单的客户,我们可以使用 RIGHT JOIN

SELECT customers.customer_name, orders.order_date
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;

结果:

customer_name order_date
John Doe 2021-01-01
Jane Smith 2021-01-02
Alice Johnson NULL
目录
相关文章
|
关系型数据库
INNER JOIN的使用
INNER JOIN的使用
80 0
|
12天前
|
SQL
OUTER JOIN
【11月更文挑战第08天】
23 2
|
13天前
|
SQL
INNER JOIN
【11月更文挑战第07天】
21 1
|
14天前
|
SQL 数据库
INNER JOIN
【11月更文挑战第06天】
22 2
|
1月前
|
关系型数据库 数据挖掘 数据库
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
45 2
|
1月前
|
关系型数据库 数据挖掘 数据库
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
53 1
|
关系型数据库 MySQL
inner join 、left join、right join,优先使用inner join
inner join 、left join、right join,优先使用inner join
|
SQL Cloud Native 关系型数据库
排除法,一个一个 join
排除法,一个一个 join
98 0
排除法,一个一个 join
|
关系型数据库 MySQL
八、inner join 、left join、right join,优先使用inner join
八、inner join 、left join、right join,优先使用inner join
457 0
inner join
INNER JOIN 关键字 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。 INNER JOIN 关键字语法 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:INNER JOIN 与 JOIN 是相同的。 原始的表 (用在例子中的): "Persons" 表: Id_P LastName FirstName Address City 1 Adams John Oxford Street L
137 0