Значок за наличие определённых других значков

Я работаю над SQL-запросом для выдачи бейджей пользователям, у которых есть все бейджи из указанного списка (например, с id 3, 4 и 5).

Мне известно, что следующий запрос корректно работает для одного бейджа:

SELECT user_id, count(id), current_timestamp as granted_at
FROM user_badges
WHERE badge_id = 4
GROUP BY user_id

Но как адаптировать его для нескольких id бейджей? Добавление ещё одного условия badge_id = X не подойдёт, так как это ищет только один бейдж. Intersect казался бы подходящим решением, но он не поддерживается. Этот запрос будет выполняться ежедневно и не будет затрагивать никакие посты.
Спасибо!

Я использую что-то подобное для создания альтернативного уровня пользователя для моих участников.
Вы можете заменить ib.badge_id на ID значка, который должны получить ваши участники.

SELECT user_id, CURRENT_TIMESTAMP granted_at, NULL post_id
FROM user_badges pb
WHERE badge_id = 1
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 11
)
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 124
)
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 123
)
AND EXISTS (
  SELECT 1 FROM user_badges ib
  WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 127
)
AND EXISTS (
   SELECT 1 FROM user_badges ib
   WHERE pb.user_id = ib.user_id
  AND ib.badge_id = 5
)

Спасибо за помощь, всё работает отлично!