SELECT
a.foo
b.bar
c.foobar
FROM tableOne AS a
INNER JOIN tableTwo AS b ON a.pk = b.fk
LEFT JOIN tableThree AS c ON b.pk = c.fk
WHERE a.foo = 'something'
AND c.foobar = 'somethingelse'
जहां क्लॉज बाएं को एक आंतरिक जुड़ने में बदलता है, उसके बाद और खंड होने के बाद। मैं जो व्यवहार देख रहा हूं वह यह है कि अगर टेबल में 'कुछ नहीं' है तो वहां 0 पंक्तियां वापस आ जाएंगी।बाएं शामिल हो जाते हैं
यदि मैं शामिल खंड में c.foobar = 'someelse' को स्थानांतरित करता हूं तो संग्रहीत जॉइन बाएं जुड़ने जैसा कार्य करेगा।
SELECT
a.foo
b.bar
c.foobar
FROM tableOne AS a
INNER JOIN tableTwo AS b ON a.pk = b.fk
LEFT JOIN tableThree AS c ON b.pk = c.fk
AND c.foobar = 'somethingelse'
WHERE a.foo = 'something'
क्या कोई मुझे कुछ दस्तावेज पर बता सकता है कि ऐसा क्यों होता है? आपको बहुत धन्यवाद
+1। अच्छा स्पष्टीकरण। –
@ डेवमार्कल वह वही मामला है जब मैं समूह में बाएं या दाएं भाग में दाएं हिस्से से मूल्य निर्दिष्ट करता हूं। (मेरा मतलब है कि यह बाएं से भीतरी में परिवर्तित हो जाएगा) –
@ डेव मार्कल क्या आप जानते हैं कि तेज़ी से क्या होगा, WHERE क्लॉज या जॉइन इस तरह के मामले में भविष्यवाणी करेगा? – PerPlexSystem