इस सरल एसक्यूएल बाहरी में शामिल होने के बारे में क्या गलत है?बी में एक बाएं बाहरी कैसे शामिल हो सकता है ए में से अधिक पंक्तियों की तुलना में?
select count(*) from A -- 25766
select count(*) from B -- 1242
select count(*) from A left outer join B on A.b = B.b -- 310176
क्रमशः 25766, 1242 और 310176 पंक्तियां लौटाएं। (यह माइक्रोसॉफ्ट एसक्यूएल सर्वर 2012 के लिए है।) A left outer join B
A
में मौजूद होने की तुलना में अधिक पंक्तियों को वापस कैसे कर सकता है, विशेष रूप से this वेन आरेख दिया गया है? मुझे लगता है कि मैं एक बेवकूफ गलती कर रहा हूं लेकिन यह क्या है?
यह स्तंभ हो सकता है देता है: यह तालिका एक में एक पंक्ति है कि तालिका बी उदाहरण में कई पंक्तियों से मेल खाता होना संभव नहीं है बी पूरी कुंजी नहीं है? – Jens
+1 मैं जांच करूंगा। यह 310176 कैसे समझा सकता है? – Drux
यदि बी केवल कुंजी का हिस्सा है तो यह हो सकता है कि संदर्भ में एक पंक्ति बी में बहुत अधिक पंक्तियां और यदि आपके उदाहरण में 1 संदर्भ 12,0 का रिकॉर्ड ... बी में पंक्तियां आपको अपना परिणाम मिलती हैं। – Jens