Je pense qu’une version simple serait quelque chose comme ceci :
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
L’utilisation de t.post_counts inclurait actuellement également les petits messages d’action (fermés, non répertoriés, etc.), donc cela dépend de la précision que vous souhaitez réellement.
Vous pourriez le rendre plus spécifique en comptant les messages « éligibles » dans la requête. Quelque chose comme :
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
)
Je l’ai configuré maintenant, mais je suppose qu’il devrait être réglé pour se mettre à jour quotidiennement ? Je verrai demain si cela a fonctionné. Faut-il cocher « cibler les publications » ?