大家好,
我刚刚在这里发了一篇帖子,讲述我们的用户如何误用(或滥用)投票功能来创建自己的公共问答活动。
我编写了一个小型查询,可以获取包含 N 个投票的帖子结果,包括哪位用户为哪个投票选项投了票。
这就是该查询,或许对其他人也有用。请注意,链接中包含更多关于我们如何设置问答活动以及如何获取结果的详细信息。
-- [参数]
-- int :topic_id
-- int :post_number
SELECT polls.name AS "投票名称", poll_options.html AS "答案", poll_votes.user_id AS "用户 ID", users.username AS "用户名"
FROM poll_options
INNER JOIN poll_votes ON poll_options.id=poll_votes.poll_option_id
INNER JOIN polls ON polls.id=poll_votes.poll_id
INNER JOIN users ON users.id=poll_votes.user_id
WHERE poll_options.id IN (
SELECT id FROM poll_options WHERE poll_options.poll_id IN (
SELECT id FROM polls WHERE post_id IN (
SELECT id FROM posts WHERE topic_id=:topic_id AND post_number=:post_number )
)
)
ORDER BY polls.name, html