在 SQL 中,JOIN 用于将两个或多个表中的行联接在一起,以创建一个包含来自这些表的列的结果集。JOIN 是关系型数据库中用于处理关联数据的重要操作。

基本的 JOIN 语法如下:
SELECT columns
FROM table1
JOIN table2 ON table1.column_name = table2.column_name;

  •  columns: 要检索的列的名称。

  •  table1, table2: 要连接的表的名称。

  •  table1.column_name = table2.column_name: 连接条件,指定两个表之间的关联。


以下是一些 JOIN 的类型:

1. 内连接 (INNER JOIN):
   SELECT employees.employee_id, employees.first_name, departments.department_name
   FROM employees
   INNER JOIN departments ON employees.department_id = departments.department_id;
   上述查询将返回包含员工 ID、员工名和部门名的结果集,仅包含在两个表中都存在的行。

2. 左连接 (LEFT JOIN 或 LEFT OUTER JOIN):
   SELECT employees.employee_id, employees.first_name, departments.department_name
   FROM employees
   LEFT JOIN departments ON employees.department_id = departments.department_id;
   上述查询将返回包含员工 ID、员工名和部门名的结果集,同时包括左表中不匹配的行。

3. 右连接 (RIGHT JOIN 或 RIGHT OUTER JOIN):
   SELECT employees.employee_id, employees.first_name, departments.department_name
   FROM employees
   RIGHT JOIN departments ON employees.department_id = departments.department_id;
   上述查询将返回包含员工 ID、员工名和部门名的结果集,同时包括右表中不匹配的行。

4. 全外连接 (FULL JOIN 或 FULL OUTER JOIN):
   SELECT employees.employee_id, employees.first_name, departments.department_name
   FROM employees
   FULL JOIN departments ON employees.department_id = departments.department_id;
   上述查询将返回包含员工 ID、员工名和部门名的结果集,同时包括两个表中不匹配的行。

连接操作允许你通过共享列值将数据从一个表合并到另一个表,使得可以在查询中获取来自多个表的信息。连接条件是指定如何将两个表的行进行匹配的关键。


转载请注明出处:http://www.pingtaimeng.com/article/detail/14029/SQL