2015-12-21 4 views
0

Этот запрос: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 s в таблице users с rank из 5 или выше. как показано здесь

enter image description here

ответ

0

Изменить ваш Пунктом where следующим образом:

WHERE base_item = '202' AND user_id NOT IN (SELECT id FROM users WHERE rank > 5) 

Часть в скобках называется подзапрос. Результирующий набор подзапроса содержит идентификатор всех пользователей с рангом больше 5. Добавление к предложению where исключает всех пользователей в этом результирующем наборе.

+0

спасибо! работает как шарм! – omarisgod

+0

Приятно слышать. И спасибо за принятие ответа. Продвижение - это еще один способ выразить, что вы нашли его полезным ответом;) Спасибо! – Redbeard011010

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 
Смежные вопросы