我正在处理民意调查:每个民意调查都有很多选项,用户可以在民意调查中投票一次。因此,我有一个包含以下字段的投票表:
- id (id of the vote)
- option_id (id of the poll option chosen)
- user_id (id of the user)
- poll_id (id of the poll)
所以我要做的是:给定一个poll_id数组,我想让一个查询为每个民意调查返回投票最多的选项。因此,如果我给出1的poll_;2,我想回到投票最多的选项1&;2.我尝试过以下几种:
SELECT
t1.poll_id,
t1.option_id,
count(t1.option_id) AS num_votes,
t2.option_id AS user_vote
FROM
votes AS t1
JOIN
votes AS t2
ON
t1.id = t2.id
WHERE
t1.poll_id IN (30,40)
GROUP BY
t1.option_id;
这几乎奏效了。。。但为我提供了所有投票选项,并为每个投票提供相应的投票,而不仅仅是投票最多的选项。如果有人有什么想法,我真的很感激。谢谢。