我有一个Employee
表,它是一个自引用表,managerId
表示主键empID
。我希望找到给定empId
的2级记录。
例如:如果给定empId=5
,
如果empId=5
有子记录,则显示它们以及子记录中的子项。
该数据库是SQL Server 2005。
更新:我想要完整投射
答案 0 :(得分:0)
这应该让你开始。不确定你的意思是“完全投射”。如果你的意思是每个孩子的每个孩子,那么你需要一个循环。但是如果你知道你只想降低2级,那么这个例子就可以了:
SELECT
t1.empID as Parent_ID,
t2.empID as Child_ID,
t3.empID as Grandchild_ID
FROM
employee t1
LEFT JOIN employee t2 ON t1.empID = t2.managerID
LEFT JOIN employee t3 ON t2.empID = t3.managerID
WHERE t1.empID = @given_empID