我有3個表:用戶,組和成員資格。
用戶有Id和Name。
組也有Id和Name。
成員有ID,groupId和成員Id遞歸查詢重建對象圖
的事情是,成員Id既可以是用戶和一組。
我想要的是直接獲取用戶所屬的所有組。
要做到這一點我使用CTE,如下所示:
WITH MyGroups AS(
select *,1 as GLevel from [Group] as g where g.id IN (SELECT groupId FROM Membership m where m.memberId='MYID')
UNION ALL
select g.*,2 from [Group] g inner JOIN MyGroups my on my.id=g.id --where g.id IN (SELECT groupId FROM ACLTests.dbo.Membership m where m.groupid=g.id))
Select * from MyGroups
但我超越100級的遞歸...誰能幫助?
樣本數據:
用戶表:
ID ---------- |標題---------
爲MyUser1 |約翰
myUser2 |獅子座
組表:
ID ---------- |標題---------
myG1。 。 。| Group1
myG2。 。 。| Group2
會員表:
ID | GROUPID | MEMBERID
01 | myG1 ..。 。 。| myUser1
02 | myG1 ..。 。 。| myG2
03 | myG2 ..。 。 。| MyUser2
預期的結果FOR 爲MyUser1:組別1
預期的結果FOR MyUser2:組1,組2(G2是g1的成員,並且用戶2是G2的成員,所以用戶2是也G1的成員)
你有什麼問題呢?你可以請張貼一些樣本數據和預期的產出? – Rachcha
@Rachcha編輯!檢查出來... – Leonardo