我认为可以将其简化为如下(同时也可以利用数据浏览器的某些魔力):
-- [params]
-- post_id :post_url
-- text :poll_name = poll
SELECT
pv.user_id,
po.html AS answer,
ue.email
FROM poll_options po
JOIN poll_votes pv ON po.id = pv.poll_option_id
JOIN polls p ON p.id = pv.poll_id
JOIN user_emails ue ON pv.user_id = ue.user_id AND ue.primary
WHERE p.post_id = :post_url
AND p.name = :poll_name
ORDER BY po.html
post_id 参数类型允许您粘贴帖子网址并以此方式获取其 post_id(例如 https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768/5)。帖子中的大多数单个投票都简单地称为“poll”,除非在同一帖子中添加了第二个投票(或手动添加),因此将其作为 :poll_name 的默认值似乎很有用。
此外,user_id 具有一些魔力,它将显示头像和用户名,链接到用户卡/个人资料,而不是仅仅显示纯用户 ID 本身。在“站内”查看结果非常有用,但如果您计划导出它们,则需要重新添加 users 表以获取用户名的文本版本。