自我加入

表可以在所谓的自联接中连接到自身,将表中的记录与同一表中的其他记录组合在一起。自连接通常用于定义表的列中的层次结构的查询中。

考虑名为 Employees 的表中的示例数据:

ID 名称 Boss_ID
1 短发 3
2 吉姆 1
3 山姆 2

每个员工的 Boss_ID 映射到另一个员工的 ID。要检索具有各自老板名称的员工列表,可以使用此映射将表连接起来。请注意,以这种方式连接表需要在对表的第二个引用上使用别名(在本例中为 Bosses),以区别于原始表。

SELECT Employees.Name,
    Bosses.Name AS Boss
FROM Employees
INNER JOIN Employees AS Bosses 
    ON Employees.Boss_ID = Bosses.ID

执行此查询将输出以下结果:

名称 老板
短发 山姆
吉姆 短发
山姆 吉姆