다음 표가 있습니다. groups 계층 적으로 정렬 된 그룹을 포함하는 테이블과 사용자가 속한 그룹을 저장하는 group_member.SQL 재귀
groups
---------
id
parent_id
name
group_member
---------
id
group_id
user_id
ID PARENT_ID NAME
---------------------------
1 NULL Cerebra
2 1 CATS
3 2 CATS 2.0
4 1 Cerepedia
5 4 Cerepedia 2.0
6 1 CMS
ID GROUP_ID USER_ID
---------------------------
1 1 3
2 1 4
3 1 5
4 2 7
5 2 6
6 4 6
7 5 12
8 4 9
9 1 10
주어진 사용자의 보이는 그룹을 검색하고 싶습니다. 그것은 사용자가 속한 그룹과이 그룹의 하위 그룹을 말합니다. 예를 들어, 위 데이터의 경우 :
USER VISIBLE_GROUPS
9 4, 5
3 1,2,4,5,6
12 5
이 값은 재귀 및 여러 데이터베이스 쿼리를 사용하여 얻게됩니다. 하지만 내 응용 프로그램 성능을 향상시키기 위해 단일 SQL 쿼리로이 작업을 수행 할 수 있는지 알고 싶습니다. MySQL을 사용하고 있습니다.
codeproject 링크는 SQL Server 용으로 작성되었습니다. 이 코드를 mySQL에 적용하는 것은 쉽지 않을 수 있지만 여기에 커서에 대한 mySQL 참조가 있습니다. http://dev.mysql.com/doc/refman/5.0/en/cursors.html – Prestaul