sql server - एसक्यूएल सर्वर में बाएं जॉइन बनाम बाएं बाहरी जॉइन जॉइन




sql-server tsql (10)

अपने प्रश्न का उत्तर देने के लिए बाएं जॉइन और बाएं आउटर जॉइन के बीच कोई अंतर नहीं है, वे बिल्कुल वही हैं जो कहा ...

शीर्ष स्तर पर मुख्य रूप से 3 प्रकार के जुड़ते हैं:

  1. भीतरी
  2. बाहरी
  3. पार करना
  1. अंदरूनी जॉइन - दोनों टेबलों में मौजूद होने पर डेटा लाता है।

  2. बाहरी जॉइन 3 प्रकार के हैं:

    1. LEFT OUTER JOIN - बाएं टेबल में मौजूद होने पर डेटा लाता है।
    2. RIGHT OUTER JOIN - सही तालिका में मौजूद होने पर डेटा प्राप्त करता है।
    3. FULL OUTER JOIN - दो टेबलों में से किसी एक में मौजूद डेटा प्राप्त करता है।
  3. क्रॉस जॉइन , जैसा कि नाम से पता चलता है, [n X m] जो सब कुछ सब कुछ में शामिल हो जाता है।
    परिदृश्य के समान जहां हम उन्हें अलग करने के लिए अल्पविरामों का उपयोग करके, शामिल होने के लिए तालिकाओं को चयन करने के लिए तालिकाओं को सूचीबद्ध करते हैं ( SELECT कथन के खंड से)।

ध्यान देने योग्य अंक:

  • यदि आप JOIN जिक्र करते हैं तो डिफ़ॉल्ट रूप से यह एक INNER JOIN
  • एक OUTER LEFT होना चाहिए | RIGHT | FULL आप OUTER JOIN नहीं कह सकते हैं।
  • आप OUTER कीवर्ड छोड़ सकते हैं और केवल LEFT JOIN या RIGHT JOIN या FULL JOIN कह सकते हैं।

उन लोगों के लिए जो इन्हें बेहतर तरीके से देखना चाहते हैं, कृपया इस लिंक पर जाएं: एसक्यूएल का एक विज़ुअल स्पष्टीकरण जुड़ता है

https://code.i-harness.com

LEFT JOIN और LEFT OUTER JOIN बीच क्या अंतर है?


बाएं जुड़ने और बाएं बाहरी जुड़ने के बीच क्या अंतर है?

कुछ नहीं LEFT JOIN और LEFT OUTER JOIN समकक्ष हैं।


केवल 3 जुड़ते हैं:

  • ए) क्रॉस जॉइन = कार्टेशियन (उदाहरण: टेबल ए, टेबल बी)
  • बी) आंतरिक शामिल हों = जॉइन (उदाहरण: तालिका ए जॉइन / इनर टेबल बी में शामिल हों)
  • सी) बाहरी शामिल हों:

       There are three type of outer join
       1)  Left Outer Join     = Left Join
       2)  Right Outer Join    = Right Join
       3)  Full Outer Join     = Full Join    
    

उम्मीद है कि यह मदद करेगा।


Syntactic चीनी, आरामदायक पाठक के लिए यह और अधिक स्पष्ट बनाता है कि शामिल एक आंतरिक नहीं है।


तुम्हारे प्रश्न का उत्तर देने के लिए

एसक्यूएल सर्वर में सिंटैक्स आउटर वैकल्पिक है

एमएसडीएन लेख में इसका उल्लेख है: https://msdn.microsoft.com/en-us/library/ms177634(v=sql.130).aspx

तो निम्नलिखित सूची आउटपुट के साथ और बिना समकक्ष वाक्यविन्यास में शामिल हो जाती है

LEFT OUTER JOIN => LEFT JOIN
RIGT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN

अन्य समकक्ष वाक्यविन्यास

INNER JOIN => JOIN
CROSS JOIN => ,

डॉटनेट मोब आर्टिस की सशक्त सिफारिश करें: एसक्यूएल सर्वर में शामिल हों


दस्तावेज़ीकरण के अनुसार: से (ट्रांजैक्ट-एसक्यूएल) :

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

कीवर्ड OUTER को वैकल्पिक (स्क्वायर ब्रैकेट्स में संलग्न) के रूप में चिह्नित किया जाता है, और इस मामले में इसका क्या अर्थ है कि आप इसे निर्दिष्ट करते हैं या इससे कोई फर्क नहीं पड़ता है। ध्यान दें कि जब शामिल खंड के अन्य तत्वों को वैकल्पिक के रूप में भी चिह्नित किया जाता है, तो उन्हें छोड़कर निश्चित रूप से एक अंतर आएगा।

उदाहरण के लिए, JOIN क्लॉज का पूरा प्रकार-भाग वैकल्पिक है, यदि आप JOIN निर्दिष्ट करते हैं तो डिफ़ॉल्ट स्थिति INNER । दूसरे शब्दों में, यह कानूनी है:

SELECT *
FROM A JOIN B ON A.X = B.Y

समकक्ष वाक्यविन्यास की एक सूची यहां दी गई है:

A LEFT JOIN B            A LEFT OUTER JOIN B
A RIGHT JOIN B           A RIGHT OUTER JOIN B
A FULL JOIN B            A FULL OUTER JOIN B
A INNER JOIN B           A JOIN B

इसके अलावा मैंने इस उत्तर पर छोड़े गए उत्तर पर एक नज़र डालें प्रश्न: एसक्यूएल लाइन से कई टेबल बनाम जुड़ गया? ।


मुख्य रूप से तीन प्रकार के जॉइन हैं

  1. आंतरिक: डेटा प्राप्त करता है, जो दोनों तालिकाओं में मौजूद हैं
    • केवल जॉइन का मतलब है जॉइन जॉइन
  2. बाहरी: तीन प्रकार के होते हैं

    • बाएं आउट - - केवल बाएं टेबल और मिलान की स्थिति में मौजूद डेटा लाता है
    • दाएं आउट - - डेटा को केवल सही तालिका और मिलान की स्थिति में प्रस्तुत करता है
    • पूर्ण आउट - - डेटा को किसी भी या दोनों टेबल प्रस्तुत करता है
    • (बाएं या दाएं या पूर्ण) बाहरी जॉइन लिखा जा सकता है "ओटर" लिखना
  3. क्रॉस जॉइन: सब कुछ सबकुछ में शामिल हो जाता है


मुझे निम्नलिखित क्रम में शामिल होने के बारे में सोचना आसान लगता है:

  • क्रॉस जॉइन - दोनों टेबलों का एक कार्टेशियन उत्पाद। सभी शामिल हो जाते हैं
  • अंदरूनी जॉइन - एक फ़िल्टर के साथ एक क्रॉस जॉइन जोड़ा गया।
  • बाहरी जॉइन - गायब तत्वों (या तो बाएं या दाएं तालिका से) के साथ एक इंटर्न जॉइन बाद में जोड़ा गया।

जब तक मैंने यह (अपेक्षाकृत) सरल मॉडल नहीं निकाला, जॉन्स हमेशा एक काला कला का थोड़ा और अधिक था। अब वे सही समझ में आते हैं।

उम्मीद है कि इससे भ्रमित होने से ज्यादा मदद मिलती है।


मैं एक पोस्टग्रेएसक्यूएल डीबीए हूं, जहां तक ​​मैं बाहरी या बाहरी जुड़ने के अंतर के बीच का अंतर समझ सकता हूं वह एक विषय है जिसमें इंटरनेट के आसपास काफी चर्चा है। आज तक मैंने उन दोनों के बीच कभी अंतर नहीं देखा; तो मैं आगे गया और मैं उन लोगों के बीच अंतर खोजने की कोशिश करता हूं। अंत में मैंने इसके बारे में संपूर्ण दस्तावेज पढ़ा और मुझे इसके लिए जवाब मिला,

तो यदि आप दस्तावेज़ीकरण (कम से कम PostgreSQL में) देखते हैं तो आप यह वाक्यांश पा सकते हैं:

" INNER और OUTER शब्द सभी रूपों में वैकल्पिक हैं। INNER डिफ़ॉल्ट है; LEFT , RIGHT , और FULL बाहरी शामिल होने का संकेत देते हैं।"

दूसरे शब्दों में,

LEFT JOIN और LEFT OUTER JOIN एक ही हैं

RIGHT JOIN और RIGHT OUTER JOIN एक ही हैं

मुझे आशा है कि यह उन लोगों के लिए योगदान हो सकता है जो अभी भी जवाब ढूंढने की कोशिश कर रहे हैं।






outer-join