2013-02-27 185 views
6

कुछ समय के लिए मुझे केवल यह पता चल रहा है कि इनर जॉइन का उपयोग कैसे करें और बिल्कुल बाएं/दाएं (बाहरी) जॉइन के बारे में कोई संकेत नहीं है। हालांकि, जैसा कि मैंने अभी इसके बारे में पढ़ा है, मैं नहीं देख सकता कि अधिकार का क्या उद्देश्य है?दाएं से बाएं जुड़ने के लिए सही शामिल हों?

मुझे ऐसा लगता है कि यह शामिल हों

अगर हम अपना उदाहरण का अनुसरण एक रिवर्स वाम के समान है:

SELECT t2.* FROM table2 t2 LEFT JOIN table1 t1 ON t1.value = t2.value 

यह सही है, या हूँ: करने के लिए

SELECT t1.* FROM table1 t1 RIGHT JOIN table2 t2 ON t2.value = t1.value 

समान होगा मुझे कुछ याद आ रहा है?

+0

http://stackoverflow.com/a/248403/40822 – dotjoe

+0

हां, मैं पोस्ट करने से पहले कुछ बुरी खोज किया था, मेरा बुरा! स्पष्ट रूप से न केवल एक डुप्लिकेट ... – Colandus

+0

यह संभव है कि एसक्यूएल पर एएनएसआई कमेटी ने दोनों अधिकार और बाएं बाहरी जॉइन की रचना की ताकि एसक्यूएल प्रोग्रामर नल की वैधता के अलावा कुछ भाषा सुविधा के बारे में अंतहीन वकालत बहस में शामिल हो सकें! :-) –

उत्तर

2

हाँ, तुम सही हो। Wikipedia से:

एक सही बाहरी में शामिल होने के बाद (या में शामिल होने) बारीकी से, एक बाएं बाहरी में शामिल होने के जैसा दिखता है टेबल उलट के उपचार के साथ छोड़कर। से प्रत्येक पंक्ति "दाएं" तालिका (बी) कम से कम एक बार शामिल तालिका में दिखाई देगी। यदि "बाएं" तालिका (ए) से कोई मिलान पंक्ति मौजूद नहीं है, तो उन सभी रिकॉर्डों के लिए एन से कॉलम में दिखाई देगा जिनके पास बी में कोई मिलान नहीं है। दाएं बाहरी जॉइन सही तालिका से सभी मान लौटाता है और से मेल खाता है बाएं टेबल से मूल्य ( पूर्वानुमान में शामिल होने के मामले में NULL)।

0

Right join एक रिवर्स left join के बराबर है।

इससे यह बेकार नहीं होता है। कुछ लोग इस तरह से अपने प्रश्न लिखना पसंद कर सकते हैं। मैं उन लोगों में से नहीं हूं। निजी तौर पर, मैं लगभग कभी भी बाहरी बाहरी जोड़ों का उपयोग नहीं करता हूं। और, कोई प्रश्न बाएं और दाएं बाहरी दोनों में शामिल होना चाहिए।

select . . . 
from table t right outer join 
     (very 
     long 
     subquery 
     here 
    ) t2 
     on . . . 

तालिका दूसरा डालने के लिए:

मामलों में जहां किसी को पसंद करेंगे हो सकती है।

+0

मुझे परेशान शीर्षक के लिए खेद है! : p – Colandus