0
这个查询:使用MYSQL其他表
SELECT
user_id,
count(base_item)
FROM items
WHERE base_item = '202'
group by user_id order by count(base_item)
给了我这样的结果:
这是我想要的。 不过,我也希望它排除所有用户id
S IN的users
表5或更高的rank
。如下图所示
这个查询:使用MYSQL其他表
SELECT
user_id,
count(base_item)
FROM items
WHERE base_item = '202'
group by user_id order by count(base_item)
给了我这样的结果:
这是我想要的。 不过,我也希望它排除所有用户id
S IN的users
表5或更高的rank
。如下图所示
修改您的where
条款是这样的:
WHERE base_item = '202' AND user_id NOT IN (SELECT id FROM users WHERE rank > 5)
括号中的部分被称为子查询。子查询的结果集包含排名大于5的所有用户的标识。对where
子句的添加不包括该结果集中的所有用户。
加入与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
的感谢!奇迹般有效! – omarisgod
很高兴听到。并感谢您接受答案。注意它是另一种表达方式,表明您发现它是一个有用的答案;)谢谢! – Redbeard011010