MYSQL使用其他表

时间:2015-12-21 20:41:36

标签: mysql

此查询:

SELECT 
user_id, 
count(base_item) 
FROM items 
WHERE base_item = '202' 
group by user_id order by count(base_item)

给我这个结果:

enter image description here

我想要的。 但是,我还希望它排除id表中users为5或更高的所有用户rank。如图所示

enter image description here

2 个答案:

答案 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