Bạn có thể sử dụng left outer join
để lấy tất cả người dùng, sau đó, loại bỏ bất kỳ người dùng nào có nhóm được đính kèm. Truy vấn sau đây sẽ chỉ cung cấp cho bạn danh sách người dùng mà không có nhóm nào cần có:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
where
g.userid is null
Nếu bạn muốn tìm tất cả người dùng không thuộc một nhóm cụ thể:
select
u.*
from
users u
left outer join groupusers g on
u.userid = g.userid
and g.groupid = @GroupID
where
g.userid is null
Điều này sẽ chỉ loại trừ những người dùng trong nhóm cụ thể đó. Mọi người dùng khác sẽ được trả lại. Điều này là do groupid
điều kiện đã được thực hiện trong join
mệnh đề giới hạn các hàng được kết hợp, không được trả về, đó là điều mà where
mệnh đề không.