La forma más fácil de exportar una lista de emails de usuarios por ID o username?

Creo que esto podría simplificarse a algo como esto (y también apoyarse en parte de la magia del explorador de datos):

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

El tipo de parámetro post_id te permite pegar la URL de la publicación y obtener su post_id de esa manera (por ejemplo, https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768/5). Y la mayoría de las encuestas únicas en una publicación se llaman simplemente ‘poll’ a menos que se agregue una segunda a la misma publicación (o se agregue manualmente), por lo que tener eso como valor predeterminado para :poll_name parecía útil.

Además, user_id tiene algo de magia, por lo que mostrará un avatar y un nombre de usuario como enlace a la tarjeta de usuario/perfil en lugar de simplemente el user_id en texto plano. Muy útil para ver los resultados ‘en el sitio’, aunque si planeas exportarlos, deberías agregar la tabla users nuevamente para obtener la versión en texto del nombre de usuario.