我在我的數據庫模式中有兩個表,表示一個實體與自己具有多對多關係。遞歸查詢幫助
Role
---------------------
+RoleID
+Name
RoleHasChildRole
---------------------
+ParentRoleID
+ChildRoleID
從本質上講,我需要能夠編寫一個查詢這樣的:
給定一組角色,返回唯一的集所有相關角色的遞歸。
這是一個MSSQL 2008數據庫。
編輯:
被要求用於某些樣本數據請求。所以這裏有雲:
RoleID Name
------------------------------------
1 'Admin'
2 'SuperUser'
3 'Lackey'
4 'Editor'
5 'CanEditSomething'
6 'CanDeleteSomething'
7 'CanCreateSomething'
8 'CanViewSomething'
ParentRoleID ChileRoleID
------------------------------------
1 5
1 6
1 7
1 8
2 4
4 5
4 8
所以對於管理員角色的查詢將返回:
'管理員'
'CanEditSomething'
'CanDeleteSomething'
'CanCreateSomething'
'CanViewSomething'
並且超級用戶的查詢將返回:
'超級用戶'
'編輯'
'CanViewSomething'
'CanEditSomething'
我們看一些樣本數據,或者你有什麼到目前爲止已經試過...... – 2010-03-29 16:16:29
我不知道添加的樣本數據將提供什麼好處。這個結構非常明顯。至於遞歸查詢,我已經看過CTE的例子,但它們似乎都處理一個自引用的表。 – Josh 2010-03-29 16:20:56
樣本數據將顯示我們是否在您的結構中存在一個圈... – 2010-03-29 16:28:08