Может быть, это основано на post_action для «Уведомить пользователя»?
Что-то вроде:
SELECT pa.user_id, current_timestamp AS granted_at
FROM post_actions pa
JOIN posts p ON p.id = pa.related_post_id
WHERE pa.post_action_type_id = 6
AND p.like_count >= 1
AND (:backfill OR p.user_id IN (:user_ids))
GROUP BY pa.user_id
HAVING COUNT(*) >= 1
На самом деле, я думаю, что речь идёт о ссылках в посте, на котором основан флаг, а не в ЛС. Возможно, потребуется небольшая корректировка.
Быстрое изменение в соединении, чтобы p.id = pa.related_post_id, должно решить задачу, думаю. ![]()
Я считаю, что HAVING нужен только в том случае, если вы хотите выдать серебряную и золотую версии для чего-то большего, чем один элемент.