请教高手:应该怎样构造这样的存储过程?
有两个多对多关系的表,就比如象NT登录时的用户组和用户之间的关系吧——
一个用户组可以包含多个用户,同样,一个用户也可以属于多个用户组。
用户组表(Group)可以这样:
Group_ID Group_Name Right ...
123 Admin 1111
110 Guest 1000
119 Global 1010
...
用户表(User)可以这样:
User_ID User_Name ...
001 John
002 Tom
003 Welson
004 Jane
005 Charlie
...
成员表(Member)则用来表示它们的多对多关系:
Group_ID User_ID
123 001
110 001
110 002
110 003
119 002
119 004
119 005
...
现在想构建一个Stored Procedure,使其返回如下形式的结果集:
Group_ID Group_Name User_List Right
123 Admin John ...
110 Guest John,Tom,Welson ...
119 Global Tom,Jane,Charlie ...
...
注意:如意是单用户的组就只在User_List列把那个用户名列出,
多个用户的组在User_List列把所有用户均列出,用户名之间以逗号分隔开。
请各位高手教我,应该怎样最简便地写这个存储过程?————
create procedure pro_usrlist
as
...
(另:以上是返回全部用户组的,如果带输入参数,只想返回指定用户组的,
又该如何构造?)