SQL Server 的自连接用于将表 1 连接到自身。如果我们在同一个表中同时拥有主键和外键,那么我们可以使用此自连接将它们连接起来,语法如下。
SELECT Tab1.Column(s), Tab2.Column(s),
FROM Table1 AS Tab1,
Table1 AS Tab2
对于此自连接演示,我们将使用数据库中的 Employees 表。如您所见,它有 15 条不同的记录,每个人都属于一个部门。我们有外键列 DepartID。

SQL Server 自连接示例
通常,每个部门都会有一个主管,他也是员工之一。要获取部门主管的姓名,我们需要使用主键和外键进行自连接。例如,以下自连接查询将显示 Employees 表中每个人的主管姓名。
注意:别名名称对此是强制性的。
SELECT EMP1.[FirstName]
,EMP1.[LastName]
,EMP1.[Department Name]
,EMP2.[FirstName] +' '+ EMP2.[LastName] AS [Department Head]
FROM [Employees] AS EMP1, [Employees] AS EMP2
WHERE EMP1.DepartID = EMP2.ID
从下面的 服务器 屏幕截图中可以看出,Rob Walter 不仅是高级软件开发人员,也是组织中其余高级软件开发人员的部门主管。当您的单个表中存在 主键 和 外键 时,请使用此方法。

评论已关闭。