Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

EXISTS बनाम जॉइन और EXISTS क्लॉज का उपयोग

EXISTS एक बूलियन मान वापस करने के लिए प्रयोग किया जाता है, JOIN एक पूरी दूसरी तालिका देता है

EXISTS इसका उपयोग केवल यह जांचने के लिए किया जाता है कि क्या कोई सबक्वेरी परिणाम देता है, और शॉर्ट सर्किट जैसे ही यह करता है। JOIN किसी अन्य तालिका से अतिरिक्त फ़ील्ड के साथ संयोजन करके परिणाम सेट का विस्तार करने के लिए उपयोग किया जाता है जिसमें एक संबंध है।

आपके उदाहरण में, प्रश्न शब्दार्थ रूप से समतुल्य हैं।

सामान्य तौर पर, EXISTS . का उपयोग करें कब:

  • आपको संबंधित तालिका से डेटा वापस करने की आवश्यकता नहीं है
  • आपके पास संबंधित तालिका में डुप्लीकेट हैं (JOIN यदि मान दोहराए जाते हैं तो डुप्लिकेट पंक्तियों का कारण बन सकता है)
  • आप अस्तित्व की जांच करना चाहते हैं (LEFT OUTER JOIN...NULL शर्त)

यदि आपके पास उचित अनुक्रमणिका हैं, तो अधिकांश समय EXISTS JOIN . के समान प्रदर्शन करेगा . अपवाद बहुत जटिल सबक्वेरी पर है, जहां आमतौर पर EXISTS . का उपयोग करना तेज़ होता है ।

अगर आपका JOIN कुंजी अनुक्रमित नहीं है, यह EXISTS का उपयोग करने के लिए तेज़ हो सकता है लेकिन आपको अपनी विशिष्ट परिस्थिति के लिए परीक्षण करने की आवश्यकता होगी।

JOIN सिंटैक्स पढ़ने में आसान होता है और सामान्य रूप से भी स्पष्ट होता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nvarchar संघटन / अनुक्रमणिका / nvarchar(अधिकतम) अकथनीय व्यवहार

  2. SQL सर्वर 2016 में STRING_SPLIT ():फॉलो-अप #2

  3. SQL सर्वर 2008 में सबसे खराब प्रदर्शन करने वाले प्रश्नों को कैसे खोजें?

  4. सी # में संग्रहीत प्रक्रिया आउटपुट पैरामीटर का उपयोग करना

  5. SQL सर्वर ईवेंट कैप्चर करने के लिए SQL ट्रेस कैसे बनाएं?