Можете да използвате left outer join
за да вземете всички потребители, след това издухайте всеки потребител, към който има прикачена група. Следната заявка ще ви даде само списъка с потребители, където няма група, която да има:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
where
g.userid is null
Ако искате да намерите всички потребители, които не са в определена група:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
and g.groupid = @GroupID
where
g.userid is null
Това ще само изключете потребителите в тази конкретна група. Всеки друг потребител ще бъде върнат. Това е така, защото groupid
условието е изпълнено в join
клауза, която ограничава съединените редове, а не върнатите, което е това, което where
клауза прави.