NOT IN का उपयोग करना:
SELECT s.*
FROM SURVEYS s
WHERE s.userid != 28
AND s.surveyid NOT IN (SELECT r.survey_id
FROM RESPONSES r
WHERE r.userid = 28)
लेफ्ट जॉइन/IS NULL का उपयोग करना:
SELECT s.*
FROM SURVEYS s
LEFT JOIN RESPONSES r ON r.survey_id = s.surveyid
AND r.user_id = 28
WHERE s.userid != 28
AND r.userid IS NULL
मौजूद नहीं का उपयोग करना:
SELECT s.*
FROM SURVEYS s
WHERE s.userid != 28
AND NOT EXISTS (SELECT NULL
FROM RESPONSES r
WHERE r.userid = 28
AND r.survey_id = s.surveyid)
सूचीबद्ध विकल्पों में से, NOT IN
और LEFT JOIN/IS NULL
समकक्ष हैं, हालांकि मैं पसंद करता हूं NOT IN
क्योंकि यह अधिक पठनीय है।