2013-11-15 42 views
2

有沒有辦法通過單個SQL語句到達層次結構的根目錄?管理器管理的經典自連接表

該表的重要列將是:EMP_ID,MANAGER_ID。

MANAGER_ID自加入EMP_ID,因爲經理也是員工。鑑於EMP_ID有沒有一種方法可以讓EMP_ID爲空的員工(經理)(走上鍊)?

換句話說,在組織中的頂級人物?

我使用SQL Server 2008

感謝。

+1

我假設你在這裏有一個不平衡的樹。我的建議是實現一個功能管理器(emp_id),它將完全鏈接上去。這樣你就可以從yourtable中選擇emp_id,manager(emp_id)。 –

+1

你可能想讀這個問題和答案:http://stackoverflow.com/questions/1757260/simplest-way-to-do-a-recursive-self-join-in-sql-server –

回答

0

很難找到一個單一的SQL查詢,它會爲您的表提供當前結構的結果。就像Brett說的,你可以嘗試一個存儲函數。

但我認爲最值得關注的是nested sets,這是一個在關係數據庫中實現的樹木的確認設計。

+0

「很難找到一個將帶來當前結構的結果的單個SQL查詢「。不它不是。看到這個SO問題(和答案),例如:http://stackoverflow.com/questions/1757260/simplest-way-to-do-a-recursive-self-join-in-sql-server –