自我加入
表可以在所谓的自联接中连接到自身,将表中的记录与同一表中的其他记录组合在一起。自连接通常用于定义表的列中的层次结构的查询中。
考虑名为 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
执行此查询将输出以下结果:
名称 | 老板 |
---|---|
短发 | 山姆 |
吉姆 | 短发 |
山姆 | 吉姆 |