यह निर्भर करता है।
आखिरकार 2 पूरी तरह से अलग-अलग उद्देश्यों को पूरा करते हैं।
आप संबंधित रिकॉर्ड तक पहुंचने के लिए 2 टेबल में शामिल हों। यदि आपको संबंधित रिकॉर्ड में डेटा तक पहुंचने की आवश्यकता नहीं है तो आपको उनसे जुड़ने की आवश्यकता नहीं है।
EXISTS का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि किसी दिए गए डेटासेट में टोकन मौजूद है या नहीं, लेकिन आप संबंधित रिकॉर्ड तक पहुंचने की अनुमति नहीं देंगे।
आपके मन में 2 विधियों का एक उदाहरण पोस्ट करें और मैं आपको एक बेहतर विचार देने में सक्षम हूं।
अपने दो तालिकाओं संस्थानों और परिणाम के साथ अगर आप संस्थाओं है कि परिणामों की एक सूची चाहते हैं, इस प्रश्न के लिए सबसे कारगर होगा:
select Institutions.institution_name
from Institutions
inner join Results on (Institutions.institution_id = Results.institution_id)
आप एक institution_id है और सिर्फ अगर जानना चाहते हैं यह परिणाम है, का उपयोग कर मौजूद है तेजी से हो सकता है:
if exists(select 1 from Results where institution_id = 2)
print "institution_id 2 has results"
else
print "institution_id 2 does not have results"
स्रोत
2008-10-22 18:44:46
यह वास्तविक सवाल नहीं है क्योंकि यह बेहद सामान्य है। उन्हें कम से कम थोड़ा और संदर्भ निर्दिष्ट करने की आवश्यकता है। –
मैंने प्रश्न की अत्यंत सामान्य प्रकृति के कारण व्यक्तिपरक टैग जोड़ा। –
@ निमेश - इस विशेष मामले में, विवरण आपके मित्र हैं। जितना अधिक विवरण आप एक उपयोगी, रचनात्मक उत्तर प्राप्त करने की अधिक संभावना प्रदान कर सकते हैं। एसक्यूएल का कौन सा स्वाद (i। ई। ओरेकल या एमएस एसक्यूएल सर्वर)? आप जिन टेबलों से पूछ रहे हैं उनकी संरचना क्या है? आदि इत्यादि। –