2010-06-03 51 views
0

我有一個Employee表,它是一個自引用表,managerId是指主鍵empID。我想通過給定empId找到2級記錄。遞歸只有2級記錄使用普通的sql

例如:如果給出empId=5, 如果empId=5有子記錄,顯示它們以及子記錄中的子項。 數據庫是SQL Server 2005中

更新:我要一個完整的投影出

+0

你想讓輸出看起來像什麼? – 2010-06-03 10:14:54

+1

只需添加兩個連接? – 2010-06-03 15:19:08

+0

那麼到目前爲止你做了什麼? – HLGEM 2010-06-04 13:23:03

回答

0

這應該讓你開始。不確定你的意思是「完全投射出來」。如果你是指每個孩子的每個孩子,那麼你將需要一個循環。但是如果你知道你只想下降兩級,這個例子就可以工作:

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