2010-10-07 81 views
0

我有一張表,其中包含訂單號,名字,姓氏,問題和答案。有5個問題詢問用戶,每個問題的答案產生1行數據,每個用戶產生5行。我需要一個查詢,返回訂單號,名字,姓氏和轉換爲列的問題和答案,每個用戶返回1行。Mysql將行隱藏到列

任何幫助,將不勝感激

感謝, 拉里

+0

這聽起來像一個可怕的規範化數據庫,用戶數據(名字/姓氏)與問題數據(問題ID,答案)在同一個表中。 – pjmorse 2010-10-07 12:15:40

回答

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 

使用最多會倒塌下來的行成獨特的名字/姓氏對。

+0

我想我簡化了我所擁有的東西。我實際上已經有4張桌子加入了我的結果。 SELECT cart_survey.order_id,orders.ordName,orders.ordLastName,survey_questions.question,survey_answers.answer 從cart_survey JOIN訂單 ON cart_survey.order_id = orders.ordID JOIN survey_answers ON survey_answers.id = cart_survey.answer_id JOIN survey_questions ON survey_questions.id = cart_survey.question_id Order by order_id – 2010-10-07 13:00:00