Mysql将行转换为列

时间:2010-10-07 12:00:39

标签: mysql

我有一张包含订单号,名字,姓氏,问题和答案的表格。向用户询问了5个问题,每个问题的答案生成1行数据,每个用户产生5行。我需要一个返回订单号,名字,姓氏以及转换为列的问题和答案的查询,每个用户返回1行。

任何帮助将不胜感激

谢谢, 拉里

1 个答案:

答案 0 :(得分:1)

好像你想加入桌子5次。

这样的东西
select q1.first_name, q1.last_name, max(q1.question), max(q1.answer), max(q2.question), max(q2.answer),max(q3.question), max(q3.answer),...
from questions q1 
join questions q2 on q1.first_name=q2.first_name and q1.last_name=q2.last_name 
join questions q3 on q1.first_name=q3.first_name and q1.last_name=q3.last_name 
where q1.order_number = 1 and q2.order_number = 2 and q3.order_number = 3 ...
group by q1.first_name, q1.last_name

使用max会将行折叠为唯一的名字/姓氏对。