数据透视查询显示错误结果

时间:2016-10-20 07:52:12

标签: mysql sql

我有2个表,survey_product和survey_result表

survey_product看起来像这样:

id product 
1   abc
2   asd
3   xyz

survey_result看起来像这样:

id user_id product_id answer
1   2        1          1
2   2        2          0
3   2        3          1
4   3        1          1
5   3        2          0
6   3        3          1

我需要结果:

id user abc asd xyz .......
1   2    1   0   1
2   3    1   0   1

1 个答案:

答案 0 :(得分:0)

在MySQL中没有简单的方法可以做到这一点。您必须将case语句转换为可用的所有用户的列。

select s.id,
 case when s.user = 1 then answer else 0 end as 'abc',
 ...
 ...
from survey_result s
join user u on s.user = u.id
group by s.id

但是,您只需将结果集导出为csv,然后在excel等电子表格软件中进行必要的旋转。