आप 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
है खंड करता है।