बीच क्या अंतर है LEFT JOIN
और LEFT OUTER JOIN
?
बीच क्या अंतर है LEFT JOIN
और LEFT OUTER JOIN
?
जवाबों:
प्रलेखन के अनुसार: FROM (Transact-SQL) :
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
कीवर्ड OUTER
को वैकल्पिक (वर्ग कोष्ठक में संलग्न) के रूप में चिह्नित किया गया है। इस विशिष्ट मामले में, आप निर्दिष्ट करते हैं OUTER
या नहीं, इससे कोई अंतर नहीं पड़ता है। ध्यान दें कि जब के अन्य तत्वों के खंड में शामिल होने के भी वैकल्पिक के रूप में चिह्नित किया जाता है, छोड़ने के लिए उन्हें बाहर होगा एक फर्क।
उदाहरण के लिए, JOIN
क्लॉज का पूरा प्रकार-भाग वैकल्पिक है, इस मामले में डिफ़ॉल्ट INNER
यदि आप सिर्फ निर्दिष्ट करते हैं JOIN
। दूसरे शब्दों में, यह कानूनी है:
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
इस उत्तर पर भी एक नज़र डालिए जो मैंने इस अन्य SO प्रश्न पर छोड़ा है: SQL बाईं ओर FROM लाइन पर कई तालिकाओं से जुड़ता है? ।
INNER JOIN
दाईं ओर और बाईं ओर होना बेहतर नहीं होगा JOIN
?
JOIN
एस के लिए भी इसका पालन करते हैं तो यह इसे सुसंगत बना देगा ।
आपके प्रश्न का उत्तर देने के लिए LEFT JOIN और LEFT OUTER JOIN में कोई अंतर नहीं है, वे बिल्कुल वही हैं जो उन्होंने कहा था ...
INNER JOIN - दोनों तालिकाओं में मौजूद होने पर डेटा प्राप्त करता है।
बाहरी शामिल हों के हैं 3 प्रकार:
LEFT OUTER JOIN
- बाईं तालिका में मौजूद होने पर डेटा प्राप्त करता है।RIGHT OUTER JOIN
- सही तालिका में मौजूद होने पर डेटा प्राप्त करता है।FULL OUTER JOIN
- यदि दोनों तालिकाओं में मौजूद है तो डेटा प्राप्त करता है।क्रोस जॉइन , जैसा कि नाम से ही पता चलता है [n X m]
कि यह हर चीज में सब कुछ मिला देता है।
परिदृश्य के समान जहाँ हम अलग करने के लिए अल्पविराम का उपयोग करते हुए ( कथन के FROM
खंड में SELECT
) शामिल होने के लिए तालिकाओं को सूचीबद्ध करते हैं।
ध्यान दिए जाने वाले बिंदु:
JOIN
तो डिफ़ॉल्ट रूप से यह एक है INNER JOIN
।OUTER
जुड़ना होगा LEFT
| RIGHT
| FULL
आप बस नहीं कह सकते OUTER JOIN
।OUTER
कीवर्ड ड्रॉप कर सकते हैं और बस LEFT JOIN
या कह RIGHT JOIN
सकते हैं FULL JOIN
।जो लोग बेहतर तरीके से इनकी कल्पना करना चाहते हैं, वे इस लिंक पर जाएं: A Visual Explanation of SQL Joins
CROSS JOIN
है वैसा ही है FULL JOIN
?
Cross Join
और Full Outer Join
... किसी तरह से समान लगता है।
लेफ्ट जॉइन और लेफ्ट ओनर जॉइन में क्या अंतर है?
कुछ नहीं । LEFT JOIN
और LEFT OUTER JOIN
बराबर हैं।
OUTER
वैकल्पिक क्यों है।
मैं एक PostgreSQL DBA हूं, जहां तक मैं बाहरी या बाहरी जुड़ावों के बीच के अंतर को समझ सकता हूं यह एक ऐसा विषय है जिसकी इंटरनेट पर चारों ओर काफी चर्चा है। आज तक मैंने उन दोनों में कभी अंतर नहीं देखा; इसलिए मैं आगे बढ़ गया और मैं उन लोगों के बीच अंतर खोजने की कोशिश करता हूं। अंत में मैंने इसके बारे में पूरे दस्तावेज पढ़े और मुझे इसका उत्तर मिला,
इसलिए यदि आप दस्तावेज़ीकरण को देखते हैं (कम से कम PostgreSQL में) तो आप यह वाक्यांश पा सकते हैं:
दूसरे शब्दों में,
LEFT JOIN
और LEFT OUTER JOIN
एक ही हैं
RIGHT JOIN
और RIGHT OUTER JOIN
एक ही हैं
मुझे उम्मीद है कि यह उन लोगों के लिए एक योगदान हो सकता है जो अभी भी उत्तर खोजने की कोशिश कर रहे हैं।
Left Join
और Left Outer Join
एक हैं और एक ही हैं । पूर्व बाद के लिए आशुलिपि है। संबंध Right Join
और Right Outer Join
संबंध के बारे में भी यही कहा जा सकता है । प्रदर्शन समानता का चित्रण करेगा। SQL फिडेल के माध्यम से प्रत्येक क्वेरी के कार्य उदाहरण दिए गए हैं । यह उपकरण क्वेरी के हेरफेर पर हाथ के लिए अनुमति देगा।
दिया हुआ
परिणाम
परिणाम
मुझे निम्नलिखित क्रम में जोड़ों के बारे में सोचना आसान लगता है:
जब तक मैंने यह (अपेक्षाकृत) सरल मॉडल नहीं खोजा, जॉन्स हमेशा एक काली कला के एक छोटे से अधिक थे। अब वे सही समझ में आता है।
आशा है कि यह भ्रमित करने में मदद करता है।
LEFT / RIGHT और LEFT OUTER / RIGHT OUTER समान क्यों हैं? आइए बताते हैं कि यह शब्दावली क्यों। यह समझें कि LEFT और RIGHT जुड़ना OUTER के विशिष्ट मामले हैं, और इसलिए OUTER LEFT / OUTER RIGHT के अलावा और कुछ नहीं हो सकता है। OUTER जॉइन को FULL OUTER भी कहा जाता है क्योंकि LEFT और राइट जॉइन के विपरीत OUTER जॉइन के आंशिक परिणाम हैं । वास्तव में:
Table A | Table B Table A | Table B Table A | Table B Table A | Table B
1 | 5 1 | 1 1 | 1 1 | 1
2 | 1 2 | 2 2 | 2 2 | 2
3 | 6 3 | null 3 | null - | -
4 | 2 4 | null 4 | null - | -
null | 5 - | - null | 5
null | 6 - | - null | 6
OUTER JOIN (FULL) LEFT OUTER (partial) RIGHT OUTER (partial)
अब यह स्पष्ट है कि उन ऑपरेशनों में उपनाम क्यों हैं, साथ ही यह स्पष्ट है कि केवल 3 मामले मौजूद हैं: INNER, OUTER, CROSS। OUTER के लिए दो उप-मामलों के साथ। शब्दावली, शिक्षक जिस तरह से यह समझाते हैं, साथ ही साथ कुछ उत्तर भी देते हैं, अक्सर ऐसा लगता है कि विभिन्न प्रकार के बहुत सारे जुड़ाव हैं। लेकिन यह वास्तव में बहुत सरल है।
JOIN
आशय INNER JOIN
" का अर्थ है बाहरी जुड़ाव के लिए आपके तर्क से फिट बैठता है?
तुम्हारे प्रश्न का उत्तर देने के लिए
Sql सर्वर में वाक्यविन्यास शामिल होता है OUTER वैकल्पिक है
Msdn लेख में इसका उल्लेख किया गया है: https://msdn.microsoft.com/en-us/library/ms177634(v=sql.130).aspx
निम्नलिखित तो सूची से पता चलता है के साथ या बिना बराबर वाक्यविन्यास में शामिल होने के बाहरी
LEFT OUTER JOIN => LEFT JOIN
RIGHT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN
अन्य समतुल्य वाक्य
INNER JOIN => JOIN
CROSS JOIN => ,
Dotnet Mob Artice की जोरदार अनुशंसा करें: Sql सर्वर में शामिल होता है
सी) बाहरी शामिल:
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
आशा है कि यह मदद करेगा।
मुख्य रूप से तीन प्रकार के जोइन होते हैं
बाहरी: तीन प्रकार के होते हैं
क्रॉस जॉइन: हर चीज में सब कुछ मिलाता है
सिंथेटिक चीनी, यह आकस्मिक पाठक के लिए और अधिक स्पष्ट करता है कि जुड़ाव एक आंतरिक नहीं है।
बस इस प्रश्न के संदर्भ में, मैं 2 'APPLY' ऑपरेटरों को भी पोस्ट करना चाहता हूं:
JOINS :
INNER JOIN = जोइन
उमर जोइन
बायाँ ओपिन जॉय = लेफ्टिनेंट जॉय
RIGHT OUTER JOIN = राइट जॉइन
फुल ऑवर जॉइन = फुल जॉय
क्रोस जॉइन
SELF-JOIN : यह बिल्कुल अलग प्रकार की जॉइन नहीं है। यह मूल रूप से उपरोक्त तालिका में से एक का उपयोग करके अपने आप से एक तालिका में शामिल होना है। लेकिन मुझे लगा कि यह संदर्भ में चर्चा के लायक है क्योंकि आप इस शब्द को SQL डेवलपर समुदाय के कई लोगों से सुनेंगे।
आवेदन :
https://www.mssqltips.com/sqlservertip/1958/sql-server-cross-apply-and-outer-apply/
https://sqlhints.com/2016/10/23/outer-apply-in-sql-server/
वास्तविक जीवन उदाहरण, जब SQL में OUTER / CROSS APPLY का उपयोग करें
मैं APPLY ऑपरेटर को बहुत लाभकारी पाता हूँ क्योंकि वे एक उपनगर में समान गणना करने की तुलना में बेहतर प्रदर्शन देते हैं। वे SQL सर्वर के पुराने संस्करणों में कई विश्लेषणात्मक कार्यों का प्रतिस्थापन भी कर रहे हैं। इसीलिए मेरा मानना है कि JOINS के साथ सहज होने के बाद, एक SQL डेवलपर को अगले APPLY ऑपरेटरों को सीखने का प्रयास करना चाहिए।
OUTER
कीवर्ड वैकल्पिक है।