Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle (+) बाहरी जुड़ाव और स्थिर मान

मैं समकक्ष "एएनएसआई जॉइन" सिंटैक्स का उपयोग करके इसे समझाने जा रहा हूं:

विकल्प 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 में अधिक पंक्तियाँ मिलती हैं।

साथ ही, इस उदाहरण में यह बताया जाना चाहिए कि आपको "एएनएसआई जॉइन" सिंटैक्स को क्यों पसंद करना चाहिए। रखरखाव/पठनीयता के दृष्टिकोण से, यह बहुत अधिक स्पष्ट है कि आपकी क्वेरी क्या कर रही है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL में MERGE करते समय, मैं उन पंक्तियों को कैसे अपडेट कर सकता हूँ जो SOURCE में मेल नहीं खाती हैं?

  2. DBCA डेटाबेस खराब बनाएँ REMOTE_LISTENER

  3. निश्चित भूमिका अनुमतियों के माध्यम से पीएल/एसक्यूएल प्रक्रिया में गतिशील डीडीएल निष्पादित करें

  4. प्रतिबद्धता के बाद मेरे डीबी परिवर्तनों को कैसे रोलबैक करें?

  5. Oracle अनुक्रम लेकिन फिर MS SQL सर्वर में