自连接(Self Join)是指在单个表内进行连接,连接表的两个实例,即将表与自身进行连接。为了在自连接中区分两个表的实例,通常使用别名(alias)来指定不同的表名。自连接通常用于在同一表中查找相关的数据关系。基本的自连接语法如下:
SELECT t1.column1, t1.column2, ..., t2.column1, t2.column2, ...
FROM table_name t1
JOIN table_name t2 ON t1.related_column = t2.related_column;

其中:
  •  table_name 是要连接的表。

  •  t1 和 t2 是表的别名,用于区分两个表的实例。

  •  related_column 是连接的条件,表示两个表中用于匹配的列。


示例:

假设有一个表 employees 包含员工的信息,其中有一列 manager_id 表示员工的直接经理。我们可以使用自连接查找每个员工及其直接经理的信息:
SELECT e.employee_id, e.employee_name, e.manager_id, m.employee_name AS manager_name
FROM employees e
JOIN employees m ON e.manager_id = m.employee_id;

在这个例子中,employees 表通过自连接,将员工表的两个实例(分别表示员工和经理)连接在一起。查询返回每个员工及其直接经理的信息,通过别名 e 和 m 区分了两个表的实例。

自连接在需要在同一表中查找相关数据关系时非常有用,例如,查找员工和他们的直接经理之间的关系。


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