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