3. Join 用例
什么是 SQL JOIN?
SQL JOIN 用于将两个或多个表 中的数据进行关联。常见的 JOIN 类型包括:
INNER JOIN:只返回两个表中匹配的记录。LEFT JOIN(或LEFT OUTER JOIN):返回左表的所有记录,即使右表没有匹配。RIGHT JOIN(或RIGHT OUTER JOIN):返回右表的所有记录,即使左表没有匹配。FULL JOIN(或FULL OUTER JOIN):返回左右表的所有匹配和不匹配的记录。
info
JOIN 在 SQL 数据库中至关重要,可用于数据整合、报表分析、数据清洗等场景。
示例数据表
假设有两个表 employees 和 departments,其初始数据如下:
employees 表
| id | name | department_id |
|---|---|---|
| 1 | Alice | 1 |
| 2 | Bob | 2 |
| 3 | Charlie | NULL |
departments 表
| id | department_name |
|---|---|
| 1 | HR |
| 2 | Engineering |
| 3 | Marketing |
各种 JOIN 示例
- SQL
-- INNER JOIN:仅返回匹配的行
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
-- LEFT JOIN:返回所有员工 ,即使没有匹配的部门
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
-- RIGHT JOIN:返回所有部门,即使没有员工
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;
-- FULL JOIN:返回所有员工和所有部门,包括没有匹配的记录
SELECT employees.name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.id;