2014-01-09 2 views
0

Я пытаюсь получить пользователей, которые не являются членами группы, поэтому я могу заполнить dropDownList для приглашений.Выберите пользователей, которые не входят в группу

Я использую T-SQL для этого.

Во всяком случае позволяет сказать, что у меня есть эта таблица:

Username Group_Id 

David  1 
Mathias  1 
William  1 
David  2 

Я хочу, чтобы выбрать членов, который не в группе № 2, т.е. я только хочу, Матиас и Уильям, как мне это сделать? Я пытался некоторое время теперь, и у меня возникают проблемы с поиском соответствующей информации на гугле ...

+0

Я думаю, что вы имеете в виду Дэвид Матиас и уилльям (есть 3 в группе 1) – 75inchpianist

+0

Дэвид является членом обеих групп, похоже, OP хочет только тех, кто не в конкретной группе. –

+0

ах я стоял исправлен. – 75inchpianist

ответ

0
select distinct Username from table 
except 
select Username from table where group_id = 2 
+0

Это отлично поработало, спасибо! :) – wlmprsn

2

Вы делаете это с помощью агрегации с having пункта:

select username 
from t 
group by username 
having sum(case when group_id = 2 then 1 else 0 end) = 0; 

Предложение having подсчитывает количество раз, когда пользователь появляется в группе 2 (в данном случае) и выбирает только тех пользователей, которые появляются один раз.

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