أسهل طريقة لتصدير قائمة ببريد المستخدمين حسب المعرف أو اسم المستخدم؟

أعتقد أنه يمكن تبسيط هذا إلى شيء كهذا (والاعتماد أيضًا على بعض سحر مستكشف البيانات):

-- [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 بلصق عنوان URL للمنشور والحصول على post_id الخاص به بهذه الطريقة (على سبيل المثال، https://meta.discourse.org/t/export-a-list-of-user-emails-by-user-id/373768/5). ومعظم الاستطلاعات الفردية في منشور تسمى ببساطة “poll” ما لم تتم إضافة استطلاع ثانٍ إلى نفس المنشور (أو تمت إضافته يدويًا)، لذا فإن وجود هذا كافتراضي لـ :poll_name يبدو مفيدًا.

أيضًا، user_id لديه بعض السحر الخاص به بحيث يعرض صورة رمزية واسم مستخدم كرابط لبطاقة المستخدم/الملف الشخصي بدلاً من مجرد معرف المستخدم العادي نفسه. مفيد جدًا لعرض النتائج “على الموقع”، على الرغم من أنه إذا كنت تخطط لتصديرها، فستحتاج إلى إضافة جدول users مرة أخرى للحصول على النسخة النصية لاسم المستخدم.