【发布时间】:2010-09-08 17:48:02
【问题描述】:
我有以下表,groups 表包含分层排序的组,group_member 存储用户所属的组。
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。
【问题讨论】: