사용자, 그룹 및 멤버쉽 테이블이 3 개 있습니다.
사용자에는 ID와 이름이 있습니다.
그룹에도 ID와 이름이 있습니다.
회원는 ID, 그룹 ID 및 MEMBERID재귀 쿼리 재 작성 그래프
것은이 MEMBERID 사용자 및 그룹 모두가 될 수 있다는 것입니다있다.
내가 원하는 것은 사용자가 속한 모든 그룹을 얻는 것입니다. .
이 작업을 수행하려면 나는 아래 표와 같이 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. . 그룹 1
myG2. . . 그룹 2
회원 테이블 :
ID | GROUPID | 회원이
01 | myG1 ... . . myUser1
02 | myG1 ... . . myG2
03 | myG2 ... . . MyUser2
예상 결과 MyUser1 FOR : 그룹 1
예상 결과 FOR MyUser2 : 그룹 1, 그룹 2 (G2은 G1의 멤버이고, 사용자 2는 G1의 부재하므로 사용자 2는 G2의 구성원이다)
문제는 무엇인가? 몇 가지 샘플 데이터와 예상 결과를 게시 할 수 있습니까? – Rachcha
@ 라차 편집 됨! 그것을 확인하십시오 ... – Leonardo