我有一张桌子,上面有订单号,名字,姓氏,问题和答案。向用户提出了5个问题,每个问题的答案产生1行数据,每位用户产生5行数据。我需要一个返回订单号,名字,姓氏以及将问题和答案转换为列的查询,每位用户返回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会将行折叠为唯一的名字/姓氏对。
关于mysql - MySQL将行转换为列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3881393/