在 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 表中没有对应的记录)。