EXISTS एक बूलियन मान वापस करने के लिए प्रयोग किया जाता है, JOIN एक पूरी दूसरी तालिका देता है
EXISTS इसका उपयोग केवल यह जांचने के लिए किया जाता है कि क्या कोई सबक्वेरी परिणाम देता है, और शॉर्ट सर्किट जैसे ही यह करता है। JOIN किसी अन्य तालिका से अतिरिक्त फ़ील्ड के साथ संयोजन करके परिणाम सेट का विस्तार करने के लिए उपयोग किया जाता है जिसमें एक संबंध है।
आपके उदाहरण में, प्रश्न शब्दार्थ रूप से समतुल्य हैं।
सामान्य तौर पर, EXISTS . का उपयोग करें कब:
- आपको संबंधित तालिका से डेटा वापस करने की आवश्यकता नहीं है
- आपके पास संबंधित तालिका में डुप्लीकेट हैं (
JOINयदि मान दोहराए जाते हैं तो डुप्लिकेट पंक्तियों का कारण बन सकता है) - आप अस्तित्व की जांच करना चाहते हैं (
LEFT OUTER JOIN...NULLशर्त)
यदि आपके पास उचित अनुक्रमणिका हैं, तो अधिकांश समय EXISTS JOIN . के समान प्रदर्शन करेगा . अपवाद बहुत जटिल सबक्वेरी पर है, जहां आमतौर पर EXISTS . का उपयोग करना तेज़ होता है ।
अगर आपका JOIN कुंजी अनुक्रमित नहीं है, यह EXISTS का उपयोग करने के लिए तेज़ हो सकता है लेकिन आपको अपनी विशिष्ट परिस्थिति के लिए परीक्षण करने की आवश्यकता होगी।
JOIN सिंटैक्स पढ़ने में आसान होता है और सामान्य रूप से भी स्पष्ट होता है।