10 से ऊपर रेटिंग वाले कम से कम एक पोस्ट वाले सभी उपयोगकर्ताओं को खोजने के लिए, इसका उपयोग करें:
SELECT u.*
FROM USERS u
WHERE EXISTS(SELECT NULL
FROM POSTS p
WHERE p.user_id = u.id
AND p.rating > 10)
EXISTS इसके भीतर SELECT स्टेटमेंट की परवाह नहीं करता है - आप NULL को 1/0 से बदल सकते हैं, जिसके परिणामस्वरूप शून्य से विभाजित करने के लिए गणित त्रुटि होनी चाहिए ... लेकिन ऐसा नहीं होगा, क्योंकि EXISTS केवल फ़िल्टरिंग से संबंधित है जहां खंड।
सहसंबंध (WHERE p.user_id =u.id) यही कारण है कि इसे एक सहसंबद्ध सबक्वेरी कहा जाता है, और रेटिंग तुलना के अलावा, USERS तालिका से केवल उन पंक्तियों को लौटाएगा जहां आईडी मान मेल खाते हैं।
स्थिति के आधार पर EXISTS भी तेज़ होता है, क्योंकि जैसे ही मानदंड पूरे होते हैं, यह सही हो जाता है - डुप्लीकेट कोई मायने नहीं रखते।