Vous pouvez utiliser une left outer join pour saisir tous les utilisateurs, puis, faites exploser tout utilisateur auquel un groupe est attaché. La requête suivante vous donnera uniquement la liste des utilisateurs pour lesquels il n'y a pas de groupe :
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
where
g.userid is null
Si vous souhaitez rechercher tous les utilisateurs qui ne font pas partie d'un groupe particulier :
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
and g.groupid = @GroupID
where
g.userid is null
Cela va seulement exclure les utilisateurs de ce groupe particulier. Tous les autres utilisateurs seront renvoyés. C'est parce que le groupid la condition a été effectuée dans la join clause, qui limite les lignes jointes, non retournées, ce que le where clause le fait.