我有一個表,sql中的遞歸循環
哪裏有用戶,他們每個人都有監督。然而,首席執行官沒有監督員,他是自己的監督員。 (即,首席執行官的總監是CEO的UserId)
我有一個要求,查找給定userid下所有下屬的列表。我正在使用下面的查詢。
WITH CTE_EMPLOYEE_HEIRARCHY AS
(
SELECT E.UserId, E.SupervisiorId AS Supervisor, d.DepartmentName,d.DepartmentId
FROM T_BIT_Users E with (nolock) inner join T_BIT_Department d with (nolock) on d.DepartmentId=e.DepartmentId WHERE E.UserId = 13
UNION ALL
SELECT E1.UserId, E1.SupervisiorId AS Supervisor,d.DepartmentName,d.DepartmentId
FROM CTE_EMPLOYEE_HEIRARCHY
JOIN T_BIT_Users E1
ON E1.SupervisiorId = CTE_EMPLOYEE_HEIRARCHY.UserId
inner join T_BIT_Department d on d.DepartmentId=e1.DepartmentId)
SELECT * FROM CTE_EMPLOYEE_HEIRARCHY
OPTION (MAXRECURSION 0)
這會一直持續在循環中。
有什麼建議。?
怎麼樣和樣品數據創建http://sqlfiddle.com? – lad2025
http://sqlfiddle.com/#!9/2d4a6/1我試過了,做出來了。但是我不知道mysql中的確切語法 –
@AmitKumar供將來參考sqlfiddle允許您在左上角更改RDMS,也就是說,您可以讓您的sqlfiddle使用mssql服務器 – Jamiec