2014-09-19 135 views
0

我有一个收集用户输入的网站。我们给用户提问,并要求他们选择答案。有几个问题。在某些问题中,用户只能选择一个答案,并且在某些问题中,用户可以因为复选框设施而选择多个答案。具有相同问题但不同答案的重复查询

当我写一个sql查询时,我得到多个问题列出多个答案选择问题。喜欢这个。

Question         User Answer 
--------         ----------- 
What color is apple?       Red 
What color is banana?       Yellow 
Days in Weekday?        Monday  
Days in Weekday?        Tuesday 
Days in Weekday?        Wednesday 
Days in Weekday?        Thursday 
Days in Weekday?        Friday 
Total days in a week?       7 

我想是这样的....

Question         UserAnswer 
--------         ----------- 
What color is apple?       Red 
What color is banana?       Yellow 
Days in Weekday?        Monday, Tuesday, Wednesday, Thursday, Friday 
Total days in a week?       7 

我试图用不同的,但因为这些文字我不能使用不同的......谁能给我一个简单的方法来这个?

我使用PHP和MySQL。 Question和UserAnswer都被存储在不同的表中,但是关系被创建。

谢谢。

+0

你有试过什么吗? – 2014-09-19 09:10:28

+0

将值存储在变量中。然后使用它们,因为你想尝试一下你自己。如果你失败了,你可以在这里发布你的代码。谢谢 – 2014-09-19 09:11:40

+0

我试过并得到了多个问题的答案。但是,我需要不同的结果,这将只显示一个问题的多个答案...就像上面。 – bmm 2014-09-19 09:12:53

回答

0

试试这个:

SELECT questions, GROUP_CONCAT(User_Answer) as User_Answer 
FROM table_name GROUP BY questions 

就以GROUP_CONCAT()看看以了解更多信息。

1

尝试这样:

SELECT questions.question_text, GROUP_CONCAT(answer.answer_text SEPARATOR ',') 
FROM questions 
    LEFT JOIN answer ON question.id = answer.question_id 
GROUP BY question.id 

显然,表/列名称将是他们是什么。左连接可以确保你得到没有答案的问题,你可能想也可能不想。

[编辑]与您的表,它应该是

SELECT questions.text, GROUP_CONCAT(answers.text SEPARATOR ',') 
FROM questions 
    LEFT JOIN UserResponse ON questions.id = UserResponse.question_id 
    LEFT JOIN answers on UserResponse.answer_id = answers.id 
GROUP BY question.id 

这将是对所有用户 - 大概在UserResponse表你有一个用户ID,你可以在添加为WHERE?

+0

将select中的所有非分组列总结在一起总是一个好主意...如果您不这样做,您将在严格模式下获得MySQL。对于这个特定的例子,我会做MIN(questions.question_text) – Salketer 2014-09-19 09:59:46

+0

你好,但我的表格结构以不同的方式。有一个名为fields(id,text)和表的问题表,称为答案,其中填充了问题表中的问题和答案表中的答案(字段,文本)。还有另一个名为UserResponse的表。它有表格字段,例如(id,question_id,answer_id)。因此,当用户回答和选择选项时,在后台脚本传递数字,如1,2,3等等,以回答UserResponse(id,question_id,answer_id)的问题......如何解决上述问题。 ?请帮忙 – bmm 2014-09-23 08:17:14

相关问题