こんにちは皆さん、
先日、ユーザーがアンケート機能の誤用(あるいは悪用?)によって独自のパブクイズを作成している様子について投稿しました。
そこで、特定の投稿(N 個のアンケートを含む)の結果を取得し、どのユーザーがどの選択肢に投票したかも含めるための小さなクエリを作成しました。
これがそのクエリです。他の皆様にも役立つかもしれません。なお、リンク先にはクイズの仕組みや結果の取得方法に関する詳細情報も記載されています。
-- [params]
-- int :topic_id
-- int :post_number
SELECT polls.name AS "Poll name", poll_options.html AS "Answer", poll_votes.user_id AS "User ID", users.username AS "Username"
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