LEFT JOIN

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

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

SQL LEFT JOIN 语法

基本的 LEFT JOIN 语法如下:

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

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

使用示例

继续使用前面的例子,假设我们想要获取所有员工的列表,包括那些没有分配到任何部门的员工。我们可以使用 LEFT JOIN 来实现这一点:

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

结果:

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

在这个查询中,即使某些员工没有分配到部门(即 department_iddepartments 表中不存在),他们仍然会出现在结果集中,而他们的 department_name 将显示为 NULL

另一个示例

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

orders 表:

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

customers 表:

customer_id customer_name
1 John Doe
2 Jane Smith

如果我们想要获取所有订单的列表,包括那些没有客户信息的订单(可能是新客户还未被添加到 customers 表中),我们可以使用 LEFT JOIN

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

结果:

order_id order_date customer_name
1 2021-01-01 John Doe
2 2021-01-02 Jane Smith
3 2021-01-03 NULL
目录
相关文章
|
6月前
|
前端开发 JavaScript 开发者
L1-032 Left-pad
L1-032 Left-pad
41 1
|
SQL 开发框架 .NET
linq中left join和inner join的正确用法
linq中left join和inner join的正确用法
|
关系型数据库 MySQL
关于MySQL中的LEFT JOIN和LEFT OUTER JOIN的区别
LEFT JOIN是LEFT OUTER JOIN的简写版;
207 0
Inner Join与Left Join
Inner Join与Left Join
116 0
|
关系型数据库 MySQL
inner join 、left join、right join,优先使用inner join
inner join 、left join、right join,优先使用inner join
left join ... is null 的实际应用
left join ... is null 的实际应用
left join ... is null 的实际应用
|
关系型数据库 MySQL
八、inner join 、left join、right join,优先使用inner join
八、inner join 、left join、right join,优先使用inner join
438 0
|
SQL 数据库
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
136 0
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
|
SQL 关系型数据库 MySQL
MySQL - LEFT JOIN、RIGHT JOIN、INNER JOIN、CROSS JOIN、FULL JOIN
MySQL - LEFT JOIN、RIGHT JOIN、INNER JOIN、CROSS JOIN、FULL JOIN
455 0
MySQL - LEFT JOIN、RIGHT JOIN、INNER JOIN、CROSS JOIN、FULL JOIN