在 SQL 中,JOIN 是用于在多个表之间建立关联的操作。JOIN 允许你通过共同的列将两个或多个表中的数据合并在一起,以便能够联合查询这些表。以下是一些常见的 SQL JOIN 类型:

INNER JOIN:

INNER JOIN 用于返回两个表中共有的行,即匹配两个表中连接列的行。
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;

LEFT JOIN (或 LEFT OUTER JOIN):

LEFT JOIN 返回左表中的所有行,以及右表中匹配的行。如果右表中没有匹配的行,将返回 NULL 值。
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;

RIGHT JOIN (或 RIGHT OUTER JOIN):

RIGHT JOIN 返回右表中的所有行,以及左表中匹配的行。如果左表中没有匹配的行,将返回 NULL 值。
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.department_id;

FULL JOIN (或 FULL OUTER JOIN):

FULL JOIN 返回左表和右表中的所有行,如果没有匹配的行,返回 NULL 值。
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.department_id;

SELF JOIN:

SELF JOIN 是指将表与自身进行连接,通常用于处理包含层次关系的数据,例如员工与其上级之间的关系。
SELECT e.employee_id, e.employee_name, m.employee_name AS manager_name
FROM employees e
LEFT JOIN employees m ON e.manager_id = m.employee_id;

这里,e.manager_id 是对同一表中的另一行的引用,用于表示员工与其上级的关系。

以上是一些基本的 SQL JOIN 类型示例。JOIN 是 SQL 查询中强大且常用的工具,允许你以不同的方式联合多个表,从而获取更复杂的查询结果。


转载请注明出处:http://www.zyzy.cn/article/detail/3349/SQL