Повторный запрос с теми же вопросами, но разными ответами

У меня есть веб-сайт, который собирает входные данные пользователей. Мы даем пользователям вопросы и просим их выбрать ответы. Есть несколько вопросов. В некотором вопросе пользователь может выбрать только один ответ, а в каком-то вопросе пользователь может выбрать несколько ответов из-за возможностей флажка.

Когда я пишу 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. И вопрос, и ответ пользователя хранятся в другой таблице, но связь установлена.

Благодарю вас.

0

Решение

Попробуйте что-то вроде этого:

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 у вас есть идентификатор пользователя, который вы можете добавить в качестве WHERE?

1

Другие решения

Попробуй это:

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

Посмотрите на GROUP_CONCAT () для дополнительной информации.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector