我有兩個表 - 「用戶」和「監督」SQL查詢顯示heirarchical數據
在這個例子中,我的用戶表很簡單: -
Users
=====
ID (PK)
UserName
有些用戶管理其他用戶,所以我已經建立了第二個表「監督」來管理這樣的: -
Supervision
===========
UserID
SuperID - this is the ID of the staff member that the user supervises.
此表用於連接用戶表與自身識別特定用戶主管。這可能是因爲一個用戶有多個主管,所以這個表完美地完成了這個任務。
這裏是我的樣本數據中「用戶」: -
userID userName
1 Bob
2 Margaret
3 Amy
4 Emma
5 Carol
6 Albert
7 Robert
8 Richard
9 Harry
10 Arthur
和我的「監督」的數據: -
userID superID
1 2
1 3
2 4
2 5
3 4
3 5
6 1
6 7
7 8
7 9
9 10
如果我想看到誰直接向鮑勃,寫作SQL查詢非常簡單,並告訴我瑪格麗特和艾米是他的直接下屬。
然而我想要做的是編寫一個查詢,顯示每個人在Bob下,所以它需要看Bobs直接報告,然後他們的直接報告,等等 - 它會給瑪格麗特,艾米,艾瑪和卡羅爾作爲結果在這種情況下。
我假設這需要某種遞歸的,但我完全被卡住..
這是否顧及誰管理,誰在下面,這似乎只帶回4分的結果嗎? – JsonStatham
@SelectDistinct當然。該例中只有4個結果。嘗試爲位於層次結構之上的用戶6運行它,並且您將得到其下的所有9個其他用戶。 http://sqlfiddle.com/#!6/c100f/2 –
啊我看到了,我的答案是否也做同樣的事情?我根據OP的例子創建了表格,結果在20分左右,這就是爲什麼我變得困惑的原因 – JsonStatham