شارة للموضوع الشائع

أعتقد أن نسخة بسيطة ستكون شيئًا كهذا:

SELECT 
    t.user_id,
    CURRENT_TIMESTAMP AS granted_at,
    p.id AS post_id
FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.posts_count >= 100
  AND t.archetype = 'regular'
  AND t.deleted_at ISNULL
  AND t.user_id > 0

استخدام t.post_counts سيشمل حاليًا أيضًا المنشورات الإجرائية الصغيرة (مغلقة، غير مدرجة، إلخ)، لذا يعتمد الأمر على مدى الدقة التي تريدها حقًا.
يمكنك جعله أكثر تحديدًا عن طريق حساب المنشورات “المؤهلة” داخل الاستعلام. شيء مثل:

SELECT 
    t.user_id,
    CURRENT_TIMESTAMP AS granted_at,
    p.id AS post_id
FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.id IN ( 
    SELECT 
        p.topic_id
    FROM posts p
      JOIN topics t ON t.id = p.topic_id
    WHERE t.archetype = 'regular'
      AND t.deleted_at IS NULL
      AND p.deleted_at IS NULL
      AND p.post_number <> 1
      AND p.post_type = 1
      AND p.hidden IS FALSE
     GROUP BY 1
     HAVING COUNT(*) >= 100
     )