本帖最后由 superman_lujuzhi 于 2010-10-06 11:18:22 编辑

解决方案 »

  1.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/06/19/4283943.aspx
    MySQL交叉表 
      

  2.   

    mysql> select user_name,
        ->  sum(if(option_id='2010',1,null)) as `上网了解`,
        ->  sum(if(option_id='2011',1,null)) as `报刊杂志`,
        ->  max(if(option_id='2012',option_result,null)) as `其他`,
        ->  sum(if(option_id='3010',1,null)) as `性价比高`,
        ->  sum(if(option_id='3011',1,null)) as `产品质量好`,
        ->  max(if(option_id='4010',option_result,null)) as `建议`
        -> from choice_result
        -> group by user_name;
    +-----------+----------+----------+----------+----------+------------+--------------+
    | user_name | 上网了解 | 报刊杂志 | 其他     | 性价比高 | 产品质量好 | 建议         |
    +-----------+----------+----------+----------+----------+------------+--------------+
    | 李四      |     NULL |     NULL | 朋友介绍 |     NULL |       NULL | 提高产品质量 |
    | 张三      |        1 |     NULL | NULL     |        1 |       NULL | 提高服务水平 |
    +-----------+----------+----------+----------+----------+------------+--------------+
    2 rows in set (0.00 sec)mysql>