假设我有一张员工表。我有名称和经理列。假设有10名员工,其中2名是经理。因此,Name将有10个名称,Manager名称将位于Manager列中。
如何使用自我加入?我只是在学习自我加入
答案 0 :(得分:2)
要执行自联接,只需为同一个表提供不同的别名即可。 例如,在您的员工表中,您将拥有一个managerid - 它存储经理的ID。 然后获取经理的名字 - 你只需自己加入managerid上的employee表 - 使用不同的别名(我在下面的例子中使用了m):
例如,您的表格如下所示:
CREATE TABLE Employees (id INT, Name VARCHAR(20), ManagerId INT);
要获得员工姓名及其经理姓名,您可以这样做:
SELECT
e.Name AS EmployeeName,
ISNULL(m.Name, 'No Manager') AS ManagerName
FROM employee e
LEFT JOIN employee m on m.id = e.ManagerId
如果您想了解有关自我加入的更多信息,请参阅here