# 按ID或用户名导出用户电子邮件列表的最简单方法？

**URL:** <https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768>\
**Category:** Data & reporting\
**Created:** [2025 年7 月 10 日 16:35 UTC](https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768 "2025-07-10T16:35:47Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

作者： ![Kieran\_Berryman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kieran_berryman/32/347853_2.png) [@Kieran\_Berryman](https://meta.discourse.org/u/Kieran_Berryman)\
发布日期： [2025 年7 月 10 日 21:08 UTC](https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768/5 "2025-07-10T21:08:16Z")

</div>

是的，我也这么想过。最初的查询是我解决此问题所需的一切，但能在投票结果查询中返回电子邮件将在未来很有用。

我继续让 AI 按照您的建议进行操作。经过一些调整（以使特定投票可被选中），我得到了以下结果：

```sql
-- [params]
-- int :topic_id
-- int :post_number
-- text :poll_name

SELECT polls.name AS "Poll Name",
       poll_options.html AS "Answer",
       poll_votes.user_id AS "User ID",
       users.username AS "Username",
       user_emails.email AS "Email"
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
LEFT JOIN user_emails ON users.id = user_emails.user_id AND user_emails.primary
WHERE poll_options.poll_id IN (
    SELECT polls.id FROM polls
    WHERE polls.post_id = (
      SELECT posts.id FROM posts WHERE topic_id = :topic_id AND post_number = :post_number
    ) AND polls.name = :poll_name
)
ORDER BY polls.name, poll_options.html

```

看起来它正在工作，再次感谢您的建议！

---

_[View the full topic](https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768)._
