没有特定徽章的用户

我正在尝试构建一个查询,以显示某个群组中缺少特定徽章(例如“认证”)的用户。

类似于“给我所有来自 VIP 群组的用户,其中没有‘认证’徽章。谢谢。

2 个赞

没有特定徽章的用户

好的,让我们试试这个:

WITH exclude_badge AS (
SELECT gu.user_id
FROM badges b, user_badges ub, users u, group_users gu
WHERE u.id = ub.user_id
AND ub.badge_id = b.id
AND u.id = gu.user_id
AND b.name = 'Certified'
AND gu.id = 10 
)

SELECT
u.id AS user_id
FROM users u
WHERE u.id NOT IN (SELECT * FROM exclude_badge)
ORDER BY user_id
LIMIT 10
5 个赞

谢谢你的帮助,Sid。我做了一些调整,并用以下内容成功实现了功能:

SELECT gu.user_id
FROM badges b, user_badges ub, users u, group_users gu
WHERE u.id = ub.user_id
AND ub.badge_id = b.id
AND u.id = gu.user_id
AND b.name = 'Certified'
AND gu.group_id = 42
)

SELECT
u.id AS user_id
FROM users u, group_users gu
WHERE u.id = gu.user_id
AND gu.group_id = 42
AND u.id NOT IN (SELECT * FROM exclude_badge)
ORDER BY user_id
LIMIT 100
4 个赞

没有特定徽章的组成员

太好了!让我们添加参数并更新我的查询列表 :wink:

最终版本:

5 个赞