Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбрать группы в которых нет пользователя  [new]
VIT2708_
Guest
Есть таблица групп dbo.Groups (id, name, ....)
таблица пользователей dbo.Users (id, lastname, firstname, ...)
и таблица ПользователейГрупп dbo.UserInGroups (userid, groupid)

Как выбрать все группы в которых входит пользователей не проблема,

@userid int

select g.id as id, g.name as groupname
	from dbo.UserInGroups ug
		left join dbo.Groups g on g.id=ug.groupid
	where ug.userid=@userid



а как выбрать все группы куда не входит пользователь?

Что то пробую и бред какой то получается

Спасибо.
22 июл 15, 10:46    [17920163]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать группы в которых нет пользователя  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708_
Что то пробую и бред какой то получается

select *
	from dbo.Groups g 
 where not exists(select * from dbo.UserInGroups ug where g.id=ug.groupid and ug.userid=@userid)
22 июл 15, 10:52    [17920189]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать группы в которых нет пользователя  [new]
VIT2708_
Guest
Glory,

как все просто оказалось. СПАСИБО
22 июл 15, 10:56    [17920214]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать группы в которых нет пользователя  [new]
Wlr-l
Member

Откуда:
Сообщений: 599
Соединения или подзапросы?

select *
  from      dbo.Groups       g
  left join dbo.UserInGroups ug on g.id=ug.groupid and ug.userid=@userid
 where ug.userid is null;
22 июл 15, 13:23    [17921089]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать группы в которых нет пользователя  [new]
VIT2708_
Guest
Wlr-l
Соединения или подзапросы?

select *
  from      dbo.Groups       g
  left join dbo.UserInGroups ug on g.id=ug.groupid and ug.userid=@userid
 where ug.userid is null;


я пробовал вот так ug.userid <>@userid чего то не догадался проверить is null
22 июл 15, 17:59    [17922714]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить