我有一个正在尝试的,不过我把它放在一边,想用新的眼光来看待它,还没有重新开始,所以可能需要一些修改。它旨在根据“data-team”组成员在 Data & reporting 类别帖子中获得至少 10 个
表情符号的帖子来授予徽章:
SELECT p.user_id, MIN(p.created_at) granted_at
FROM badge_posts p
JOIN topic_tags tt ON tt.topic_id = p.topic_id
WHERE tt.tag_id = 615
AND EXISTS (
SELECT 1
FROM discourse_reactions_reactions dr
JOIN discourse_reactions_reaction_users dru ON dr.id = dru.reaction_id
JOIN group_users gu ON gu.user_id = dru.user_id
WHERE dr.post_id = p.id
AND dr.reaction_value = 'chefs_kiss'
AND gu.group_id = 175
)
GROUP BY p.user_id
HAVING COUNT(*) >= 10
不过我对使用 MIN 并不满意,因为它给出了错误的授予日期。
它有很多标准,而且是自动的,我认为这使其处于更复杂的一端。我认为一个更简单的标准可以在不费太多力气的情况下实现。