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

कौन सा जॉइन सिंटैक्स बेहतर है?

खैर, "बेहतर" व्यक्तिपरक है। यहाँ कुछ शैली है। लेकिन मैं सीधे आपके सवालों का जवाब दूंगा।

  1. दोनों एक जैसा प्रदर्शन करते हैं
  2. दोनों एएनएसआई-अनुपालक हैं।
  3. पहले उदाहरण के साथ समस्या यह है कि

    • अनजाने में क्रॉस उत्पाद प्राप्त करना बहुत आसान है (क्योंकि इसमें शामिल होने के मानदंड को छोड़ना आसान है)

    • जॉइन मानदंड को डीबग करना भी मुश्किल हो जाता है क्योंकि आप जॉइन में अधिक से अधिक टेबल जोड़ते हैं

    • चूंकि पुरानी शैली के बाहरी जुड़ाव (*=) सिंटैक्स को बहिष्कृत कर दिया गया है (यह लंबे समय से गलत परिणाम देने के लिए प्रलेखित है), जब आपको बाहरी जुड़ने की आवश्यकता होती है, तो आपको नई शैली और पुरानी शैली में शामिल होने की आवश्यकता होती है ... प्रचार क्यों करें असंगति?

    • जबकि यह सर्वोत्तम प्रथाओं पर बिल्कुल अधिकार नहीं है, Microsoft स्पष्ट INNER/OUTER 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. एसएसआईएस में गतिशील रूप से इनपुट और आउटपुट कॉलम कैसे मैप करें?

  2. SQL सर्वर में स्ट्रिंग्स को जोड़ने के लिए GROUP BY का उपयोग कैसे करें?

  3. SQL सर्वर (T-SQL उदाहरण) में लिंक किए गए सर्वर से कॉलम जानकारी लौटाएं

  4. SQL सर्वर में PARSE() बनाम TRY_PARSE():क्या अंतर है?

  5. SQL सर्वर में एक साथ कई कॉलम कैसे बदलें