事件角色表:
seq_id event_id role_id
1 3 1
2 4 1
3 5 1
事件表:
seq_id level_one level_two action_name method_name
3 1 1 a 1
4 1 1 a 2
5 1 1 b 1
6 1 1 b 2level_one level_two action_name method_name(checkboxlist)
1 1 a 这里文字说明(两个框1、2,选中1、2)
1 1 b 这里文字说明(两个框1、2,选中1)求高手!
seq_id event_id role_id
1 3 1
2 4 1
3 5 1
事件表:
seq_id level_one level_two action_name method_name
3 1 1 a 1
4 1 1 a 2
5 1 1 b 1
6 1 1 b 2level_one level_two action_name method_name(checkboxlist)
1 1 a 这里文字说明(两个框1、2,选中1、2)
1 1 b 这里文字说明(两个框1、2,选中1)求高手!
select level_one,level_two,action_name,group_concat(method_name)
from tt group by level_one,level_two,action_name
group_concat(a.method_name) inner join 事件角色表 b on a.seq_id=b.event_id
from 事件表 a group by a.level_one,a.level_two,a.action_name
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
group_concat(a.method_name)
from 事件表 a inner join 事件角色表 b on a.seq_id=b.event_id group by a.level_one,a.level_two,a.action_name
5个字段 前3个不说了 第4个是所有角色 第5个是选中的角色语句比较恶心
SELECT c.lv1,
c.lv2,
c.lv3,
c.allrole,
d.selectRole
FROM (SELECT a.`LEVEL_ONE` AS lv1,
a.`LEVEL_TWO` AS lv2,
a.`LEVEL_THREE` AS lv3,
group_concat(a.`METHOD_NAME`) AS allrole
FROM tbl_event AS a
GROUP BY a.`LEVEL_ONE`, a.`LEVEL_TWO`, a.`LEVEL_THREE`) AS c LEFT OUTer join ( (SELECT a.`LEVEL_ONE` AS lv1,
a.`LEVEL_TWO` AS lv2,
a.`LEVEL_THREE` AS lv3,
group_concat(a.`METHOD_NAME`) AS selectRole
FROM `tbl_event` AS a,
(SELECT er.`EVENT_ID` AS event_id
FROM `tbl_event_role` AS er
WHERE er.`role_id` = 2) AS b
WHERE a.`SEQ_ID` = b.event_id
GROUP BY a.`LEVEL_ONE`, a.`LEVEL_TWO`, a.`LEVEL_THREE`) AS d ) on c.lv1 = d.lv1 AND c.lv2 = d.lv2 AND c.lv3 = d.lv3