将徽章 SQL 链接到主题 ID?

我在徽章的设置中使用了这段 SQL,它会将徽章授予所有被添加到 beta-testers 组的用户:

SELECT u.id AS user_id, CURRENT_TIMESTAMP AS granted_at
FROM users u
INNER JOIN group_users gu ON gu.user_id = u.id
INNER JOIN groups g ON g.id = gu.group_id
WHERE g.name = 'beta-testers'

我能否修改它,以便将徽章与特定的主题 ID 关联起来?:thinking:

我认为你可以这样做:

SELECT
  u.id AS user_id,
  CURRENT_TIMESTAMP AS granted_at,
  (SELECT id FROM posts WHERE topic_id = YOUR_TOPIC_ID AND post_number = 1) AS post_id
FROM users u
INNER JOIN group_users gu ON gu.user_id = u.id
INNER JOIN groups g ON g.id = gu.group_id
WHERE g.name = 'beta-testers'

YOUR_TOPIC_ID 替换为实际值。

另外,我认为需要勾选「查询目标为帖子」选项。

如果可行请告诉我。

感谢 @chapoi,我已应用该更改。

如果我点击 [Preview granted badges] 按钮,看起来一切正常,它会显示该徽章将关联的主题。

我会在 24 小时内回复,届时徽章已发放 :crossed_fingers:t2: