事件角色表:
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)求高手!
 

解决方案 »

  1.   

    详细说明
    select level_one,level_two,action_name,group_concat(method_name)
    from tt group by level_one,level_two,action_name
      

  2.   

    在代码中实现是肯定的,关键是怎么一条sql就能拿到我能操作的这些数值
      

  3.   

    select a.level_one,a.level_two,a.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
      

  4.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式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)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  5.   

    select a.level_one,a.level_two,a.action_name,
    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
      

  6.   


    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