所以假設我有下表
Employee_ID Supervisor_ID 001 123 178 123 002 178 154 178 003 154 004 201
我正在嘗試將所有受 Supervisor_ID 123 監管的員工以及該分支機構內的所有其他主管(即 178、158)都拉出來,這樣它就會吐出以下員工 001、178、002、154、003。怎么會我實作了這個?對于標題中缺乏措辭,我深表歉意。
uj5u.com熱心網友回復:
我們可以在這里使用遞回分層查詢:
WITH cte AS (
SELECT Employee_ID, Supervisor_ID
FROM yourTable
WHERE Employee_ID = 123
UNION ALL
SELECT t1.Employee_ID, t1.Supervisor_ID
FROM yourTable t1
INNER JOIN cte t2
ON t2.Employee_ID = t1.Supervisor_ID
)
SELECT Employee_ID
FROM cte
WHERE Employee_ID <> '123'
ORDER BY Employee_ID;

演示
請注意,您的示例表似乎缺少員工123顯示為員工的實際記錄。我上面的查詢假設存在這樣的記錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323247.html
標籤:查询语句
上一篇:子查詢中的動態資料庫
