Můžete použít left outer join
chytit všechny uživatele, pak odfouknout každého uživatele, kde je připojena skupina. Následující dotaz vám poskytne pouze seznam uživatelů, u kterých neexistuje žádná skupina:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
where
g.userid is null
Pokud chcete najít všechny uživatele, kteří nejsou v konkrétní skupině:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
and g.groupid = @GroupID
where
g.userid is null
To bude pouze vyloučit uživatele v této konkrétní skupině. Každý další uživatel bude vrácen. Důvodem je groupid
podmínka byla provedena v join
klauzule, která omezuje spojované řádky, nevrací je, což je to, co where
klauzule ano.