从萨米特的报价
select
ur.userid,
max(case when ur.roleid = 'role1' then 'X' else ' ' end) as role1,
max(case when ur.roleid = 'role2' then 'X' else ' ' end) as role2,
max(case when ur.roleid = 'role3' then 'X' else ' ' end) as role3
from
UserRoles ur
group by
ur.userid
简体现在,如果你想在用户的真实姓名,并有相应的用户表,加入到得到的名称。
select
u.userName,
max(case when ur.roleid = 'role1' then 'X' else ' ' end) as role1,
max(case when ur.roleid = 'role2' then 'X' else ' ' end) as role2,
max(case when ur.roleid = 'role3' then 'X' else ' ' end) as role3
from
UserRoles ur
JOIN Users u
on ur.userid = u.userid
group by
ur.userid
总角色数是否固定为三? – GurV
look on http://stackoverflow.com/questions/7674786/mysql-pivot-table –