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

Oracle 11g . में + साइन का उपयोग करके लेफ्ट आउटर जॉइन करें

TableA LEFT OUTER JOIN TableB TableB RIGHT OUTER JOIN Table A के बराबर है ।

Oracle में, (+) जॉइन में "वैकल्पिक" तालिका को दर्शाता है। तो आपकी पहली क्वेरी में, यह एक P LEFT OUTER JOIN S है . आपकी दूसरी क्वेरी में, यह है S RIGHT OUTER JOIN P . वे कार्यात्मक रूप से समकक्ष हैं।

शब्दावली में, दाएँ या बाएँ निर्दिष्ट करते हैं कि जुड़ने के किस पक्ष में हमेशा एक रिकॉर्ड होता है, और दूसरा पक्ष शून्य हो सकता है। तो एक P LEFT OUTER JOIN S . में , P हमेशा एक रिकॉर्ड होगा क्योंकि यह LEFT . पर है , लेकिन S शून्य हो सकता है।

देखें java2s.com से यह उदाहरण अतिरिक्त स्पष्टीकरण के लिए।

स्पष्टीकरण के लिए, मुझे लगता है कि मैं कह रहा हूं कि शब्दावली कोई फर्क नहीं पड़ता, क्योंकि यह केवल कल्पना करने में मदद करने के लिए है। क्या मायने रखता है कि आप इसकी अवधारणा को समझते हैं कि यह कैसे काम करता है।

दाएं बनाम बाएं

मैंने इस बारे में कुछ भ्रम देखा है कि अंतर्निहित जॉइन सिंटैक्स में दाएं बनाम बाएं निर्धारित करने में क्या मायने रखता है।

लेफ्ट आउटर जॉइन

SELECT *
FROM A, B
WHERE A.column = B.column(+)

दायां बाहरी शामिल हों

SELECT *
FROM A, B
WHERE B.column(+) = A.column

मैंने केवल WHERE क्लॉज में शर्तों के पक्ष को स्वैप किया है, लेकिन वे अभी भी कार्यात्मक रूप से समकक्ष हैं। (उस बारे में अधिक जानकारी के लिए मेरे उत्तर में ऊपर देखें।) (+) की नियुक्ति दाएं या बाएं निर्धारित करता है। (विशेष रूप से, यदि (+) दायीं ओर है, यह लेफ्ट जॉइन है। अगर (+) बाईं ओर है, यह राइट जॉइन है।)

जॉइन के प्रकार

जॉइन की दो शैलियाँ हैं अंतर्निहित जॉइन और स्पष्ट जॉइन . वे जॉइन लिखने की विभिन्न शैलियाँ हैं, लेकिन वे कार्यात्मक रूप से समकक्ष हैं।

देखें यह SO प्रश्न

अंतर्निहित जॉइन बस सभी तालिकाओं को एक साथ सूचीबद्ध करें। शामिल होने की शर्तें WHERE क्लॉज में निर्दिष्ट हैं।

अंतर्निहित शामिल हों

SELECT *
FROM A, B
WHERE A.column = B.column(+)

स्पष्ट जॉइन WHERE क्लॉज के बजाय किसी विशिष्ट तालिका के समावेश के साथ शामिल होने की शर्तों को संबद्ध करें।

स्पष्ट रूप से शामिल हों

SELECT *
FROM A
LEFT OUTER JOIN B ON A.column = B.column

ये लागू जॉइन पढ़ने और समझने में अधिक कठिन हो सकते हैं, और उनकी कुछ सीमाएं भी हैं क्योंकि अन्य WHERE स्थितियों में शामिल होने की स्थिति मिश्रित होती है। जैसे, स्पष्ट सिंटैक्स के पक्ष में आम तौर पर निहित जॉइन की सिफारिश की जाती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-16789:स्टैंडबाय रीडो लॉग गलत तरीके से कॉन्फ़िगर किया गया

  2. सी # ऐप से ऑरैकल 10 जी डेटाबेस में कनेक्शन जांचें

  3. पायथन में डेटाबेस कनेक्शन टाइमआउट सेट करें

  4. एक ट्रिगर बनाना

  5. Oracle EBS में पैचिंग समय को कम करने के लिए डिस्ट्रीब्यूटेड AD का उपयोग कैसे करें