मैं समकक्ष "एएनएसआई जॉइन" सिंटैक्स का उपयोग करके इसे समझाने जा रहा हूं:
विकल्प 1
SELECT *
FROM TXN
LEFT JOIN CHK
ON TXN.CHK_ID = CHK.CHK_ID
WHERE TXN.CURRENT = 'Y'
AND CHK.CURRENT = 'Y'
विकल्प 2
SELECT *
FROM TXN
LEFT JOIN CHK
ON TXN.CHK_ID = CHK.CHK_ID
AND CHK.CURRENT = 'Y'
WHERE TXN.CURRENT = 'Y'
जैसा कि आप देख सकते हैं, विकल्प 1 में, आपके स्थिर विधेय बाद . लागू होते हैं LEFT JOIN
तालिका अभिव्यक्ति निर्दिष्ट है, अर्थात LEFT JOIN
. के परिणाम पर ।
विकल्प 2 में, आपका एक स्थिर विधेय LEFT JOIN
. का हिस्सा है अभिव्यक्ति।
LEFT JOIN
काम?
एक LEFT JOIN
का विचार यह है कि यह बाएं . से सभी पंक्तियों को वापस कर देगा JOIN
. के किनारे अभिव्यक्ति, भले ही दूसरी तरफ एक मेल खाने वाली पंक्ति हो, शामिल होने की भविष्यवाणी को देखते हुए। तो, विकल्प 2 में, भले ही आपको CHK
. में कोई पंक्ति मिले, CURRENT = 'Y'
के साथ TXN
. में एक पंक्ति के लिए , TXN
. में पंक्ति अभी भी लौटा है। यही कारण है कि आपको विकल्प 2 में अधिक पंक्तियाँ मिलती हैं।
साथ ही, इस उदाहरण में यह बताया जाना चाहिए कि आपको "एएनएसआई जॉइन" सिंटैक्स को क्यों पसंद करना चाहिए। रखरखाव/पठनीयता के दृष्टिकोण से, यह बहुत अधिक स्पष्ट है कि आपकी क्वेरी क्या कर रही है।