我想破头的问题请大家帮忙解决下!
现有    
 T_role_user   表有字段   userid   ,roleid      保存用户和角色的对应.一个用户可能对应多个角色   
 T_role   表   字段有roleid,rolename   保存   角色编号和   角色名称   
 T_group   表   字段有groupid,groupname   保存   分组编号和分组名称   
 T_group_user   表有字段   userid   ,groupid      保存用户和分组的对应.一个用户可能对应多个组   
 T_user   表   保存用户信息   字段主要就是   userid      
 现在我如何才能做到     
 用户名                                          角色名                                                               分组名 
 张三                                          总经理,经理,组长                              财务,市场,支持     
 象上面那样全部显示出来。并且里面的那些角色和分组是用checkbox一样来显示.用户拥有这个角色或者在这个分组.该角色对应的checkbox就选中   
 请大家帮忙!!谢谢了!!              
------解决方案---------------------- e.g.Role  
 -- sql for MS SQL Server 
 --  
 SELECT RoleID, RoleName, CASE WHEN ru.UserID IS NULL THEN 0 ELSE 1 END IsInRole FROM T_Role r  
 LEFT OUTER JOIN T_role_user ru  
 ON r.RoleID = ru.RoleID AND ru.UserID = @UserID     
 // .aspx 往 DataList 嵌入 CheckBox 便于直接绑定 
  <asp:Datalist repeatcolumns=1 ... 
  <itemtemplate>  
  <asp:checkbox text= ' <%# Eval( "RoleName ") %>  ' cheched= ' <%# Eval( "IsInRole ") %>  ' ... 
 ...   
------解决方案--------------------select username,(select roleid from role where user.userid=role.userid),(select groupid from group where group.userid=user.userid) from user
------解决方案--------------------先取出,数据库里的所有用户组,角色等,绑定到CheckBoxList,然后取出用户里面的用户组id,角色ID,相匹配的就选中。
------解决方案--------------------其实不是很难的问题 就是有点复杂  
 先用SQL把 用户查出来   放在一Table1里   再用一SQL   把角色查出来 放在一Table2里 
 再用SQL把 组查出来 放在一Table3里 
 把数据查出后 用表1滤表2 表3  然后拼到一个表里   
 再用一TABLE 拼串  加上<checkbox id= " " runat= " "></checkbox> 
 最后绑定上就成了