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;