此查询:
SELECT
user_id,
count(base_item)
FROM items
WHERE base_item = '202'
group by user_id order by count(base_item)
给我这个结果:
我想要的。
但是,我还希望它排除id
表中users
为5或更高的所有用户rank
。如图所示
答案 0 :(得分:0)
以这种方式修改where
子句:
WHERE base_item = '202' AND user_id NOT IN (SELECT id FROM users WHERE rank > 5)
括号中的部分称为子查询。子查询的结果集包含排名大于5的所有用户的id。where
子句的添加将排除该结果集中的所有用户。
答案 1 :(得分:0)
加入users
表并过滤掉排名较高的行
SELECT user_id, count(*) AS count
FROM items AS i
JOIN users AS u ON i.user_id = u.id
WHERE i.base_item = '202'
AND u.rank <= 5
group by user_id
order by count