在 SQL 中,LEFT JOIN 会返回左表(即第一个表)的所有记录,即使右表中没有匹配的记录。对于右表中没有匹配的记录,结果集中的相关列将显示为 NULL。
以下是一个简单的示例,说明如何使用 LEFT JOIN 返回左表的所有记录:
假设我们有两个表:employees
和 departments
。
employees
表结构如下:
id | name | department_id |
---|---|---|
1 | Alice | 1 |
2 | Bob | NULL |
3 | Carol | 2 |
departments
表结构如下:
id | name |
---|---|
1 | HR |
2 | Finance |
如果我们想要查询所有员工及其所属部门(即使某些员工没有分配部门),我们可以使用以下 LEFT JOIN 查询:
SELECT employees.id, employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
查询结果将如下所示:
id | name | department_name |
---|---|---|
1 | Alice | HR |
2 | Bob | NULL |
3 | Carol | Finance |
可以看到,LEFT JOIN 返回了 employees
表中的所有记录,即使某些员工没有分配部门(在 departments
表中没有对应的记录)。