Jeito mais fácil de exportar uma lista de e-mails de usuários por ID ou nome de usuário?

Acho que isso poderia ser simplificado para algo assim (e também aproveitar um pouco da mágica do explorador de dados):

-- [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

O tipo de parâmetro post_id permite que você cole a URL da postagem e obtenha seu post_id dessa forma (por exemplo, https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768/5). E a maioria das enquetes únicas em uma postagem é simplesmente chamada de ‘poll’, a menos que uma segunda seja adicionada à mesma postagem (ou adicionada manualmente), então ter isso como padrão para :poll_name pareceu útil.

Além disso, user_id tem alguma mágica, então ele mostrará um avatar e nome de usuário como um link para o cartão/perfil do usuário em vez de simplesmente o user_id em texto simples. Muito útil para visualizar resultados ‘no local’, embora se você planeja exportá-los, precisará adicionar a tabela users de volta para obter a versão em texto do nome de usuário.