Du kan bruge en left outer join
for at få fat i alle brugerne, så blæs enhver bruger væk, hvor der er en gruppe tilknyttet. Følgende forespørgsel vil kun give dig listen over brugere, hvor der ikke er nogen gruppe at have:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
where
g.userid is null
Hvis du vil finde alle brugere, der ikke er i en bestemt gruppe:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
and g.groupid = @GroupID
where
g.userid is null
Dette vil kun ekskluder brugerne i den pågældende gruppe. Hver anden bruger vil blive returneret. Dette skyldes, at groupid
betingelse blev udført i join
klausul, som begrænser rækkerne forbundet, ikke returneret, hvilket er hvad where
klausul gør.