2015-04-15 2 views
1

У меня есть следующие настройки:MySQL - выбрать из множества уникальных значений

--------------------- 
| user_id | list_id | 
--------------------- 
|  1 |  1 | 
|  1 |  2 | 
|  2 |  2 | 
|  3 |  2 | 
--------------------- 

нужно выбрать user_id «S по list_id, но только те, которые являются уникальными в таблице. Таким образом, в моем примере это должно быть только user_id 2 и 3.

Что следует добавить к select user_id from table where list_id=2?

Пожалуйста, помогите, я действительно застрял ...

Благодаря

ответ

0

Группа по user_id и принимать только те, которые имеют по крайней мере один list_id = 2 и в общей сложности только одна запись этого user_id

select user_id 
from table 
group by user_id 
having sum(list_id = 2) > 0 
and count(*) = 1 
+0

Это удивительный, человек! Что за мозг, но он работает! Спасибо – autarq

0

Попробуйте это:

select user_id from table group by user_id having count(*) =1 
0

Мы можем использовать ниже запрос

select user_id ,count(*) 
from table 
GROUP BY 
    user_id 
HAVING 
    COUNT(*) = 1 
+0

Фильтр 'list_id' отсутствует здесь. Посмотрите ответ @juergen d's – autarq

0
select user_id from table group by user_id having count(*)=1; 
+0

Здесь отсутствует фильтр 'list_id'. Посмотрите на ответ @juergen d's – autarq

Смежные вопросы