MySQL查询:选择每个选项被选中的次数
我有两张mysql表MySQL查询:选择每个选项被选中的次数,mysql,Mysql,我有两张mysql表 1. questions: with the following columns: id, title, answer1, answer2, answer3, answer4, answer5, nranswers. 及 每个问题最多有5个答案,可以有2到5个答案。我的问题是,我想从我的数据库中选择一个给定的问题,每个选项被选择了多少次 例如,假设我有一个id为46的问题,有4个答案,48个用户投票支持选项2,37个用户投票支持选项1,39个用户投票支持选项4 我需要一个
1. questions: with the following columns: id, title, answer1, answer2, answer3, answer4, answer5, nranswers.
及
每个问题最多有5个答案,可以有2到5个答案。我的问题是,我想从我的数据库中选择一个给定的问题,每个选项被选择了多少次
例如,假设我有一个id为46的问题,有4个答案,48个用户投票支持选项2,37个用户投票支持选项1,39个用户投票支持选项4
我需要一个查询来选择它并编写以下内容:
137
2 48
3 0
4 39
附言:非常重要!它必须只计算NR答案,并且必须与以前未投票的答案相呼应。最好的方法是:更改表格定义:
Questions (Question_ID, title)
Answers (Answer_ID, Question_ID, answer_text)
Votes (User_ID, Answer_ID)
其中包含与def相同的数据,但在中。选择计数现在非常容易
SELECT
a.Answer_ID,
COUNT(v.User_ID)
FROM
Questions q
LEFT JOIN Answers a ON q.Question_ID = a.Question_ID
LEFT JOIN Votes v ON a.Answer_ID = v.Answer_ID
WHERE q.Question_ID = 46 -- or any other question ID
GROUP BY a.Answer_ID
ORDER BY a.Answer_ID;
选择q.id作为问题,a.answer作为答案,counta.answer作为问题q的计数,按q.id回答一组问题,a.answer 上面的问题,它将返回如下
question answer Count
1 1 37
1 2 48
1 4 39
1 3 0 this is missing
OR
选择a.question\u id,a.answer,counta.answer FROM test.answers按a.question\u id,a.answer回答一组问题你自己有什么?我不知道如何实现这一点,这就是为什么我问这里我已经知道如何在没有0计数的情况下进行,但我也需要0计数
question answer Count
1 1 37
1 2 48
1 4 39
1 3 0 this is missing
OR