NOT IN का उपयोग करना:
SELECT w.*
FROM WIDGET w
WHERE w.widget_id NOT IN (SELECT c.widget
FROM CHOSEN c
WHERE c.user_id = $user_id)
मौजूद नहीं का उपयोग करना:
SELECT w.*
FROM WIDGET w
WHERE NOT EXISTS (SELECT NULL
FROM CHOSEN c
WHERE c.widget_id = w.widget_id
AND c.user_id = $user_id)
बाएं शामिल हों/शून्य हैं:
SELECT w.*
FROM WIDGET w
LEFT JOIN CHOSEN c ON c.widget_id = w.widget
AND c.user_id = $user_id
WHERE w.widget IS NULL
प्रदर्शन:
अगर तुलना किए गए कॉलम (किसी भी तालिका में विजेट_आईडी) अशक्त नहीं हैं, LEFT JOIN/IS NULL MySQL पर सबसे अच्छा प्रदर्शन करता है . अगर कॉलम अशक्त हैं (मान NULL हो सकता है), NOT IN या NOT EXISTS बेहतर प्रदर्शन करते हैं ।