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

Oracle - बायाँ बाहरी जहाँ क्लॉज़ के साथ जुड़ता है

आपका स्पष्टीकरण आपकी क्वेरी से संबंधित नहीं है। आपने

. का उल्लेख किया है

"हालाँकि मुझे जहाँ क्लॉज़ भी शामिल करना है लेकिन.... मैं अब भी बाएँ हाथ की तालिका से एक पंक्ति को बाएँ हाथ की तालिका में प्रत्येक रिकॉर्ड के लिए लौटाना चाहता हूँ, भले ही वह स्थिति जहाँ क्लॉज़ है नहीं मिले। "

तो मेरा मानना ​​है कि आपकी क्वेरी कुछ इस तरह दिखती है

SELECT a.*, 
       b.* 
FROM   a 
       LEFT OUTER JOIN b 
                    ON a.vin = b.vin 
WHERE  Trunc(a.rep_open_date) BETWEEN Trunc(b.check_in_date) + 1 AND 
                                      Trunc(b.check_in_date) - 1 

उपरोक्त में LEFT OUTER JOIN INNER JOIN . में बदल दिया जाएगा Where . में दायां टेबल फिल्टर होने के कारण खंड

इसलिए जैसा कि आपने पहली क्वेरी में इस्तेमाल किया है, सही टेबल फ़िल्टर JOIN . का हिस्सा होना चाहिए कंडीशन, जो लेफ्ट टेबल से पंक्तियों को वापस कर देगी, भले ही राइट साइड टेबल में कोई मेल खाने वाला रिकॉर्ड न हो।

SELECT a.*, 
       b.* 
FROM   a 
       left outer join b 
                    ON a.vin = b.vin 
                       AND Trunc(a.rep_open_date) BETWEEN 
                           Trunc(b.check_in_date) + 1 AND 
                           Trunc(b.check_in_date) - 1 

अपडेट करें:

आपने 10 between 11 and 9 . जैसे ऑपरेटर के बीच उपयोग किया है लेकिन यह 10 between 9 and 11 होना चाहिए

SELECT a.*, 
       b.* 
FROM   a 
       left outer join b 
                    ON a.vin = b.vin 
                       AND CAST(a.rep_open_date as date) BETWEEN 
                           CAST(b.check_in_date as date) - 1 AND 
                           CAST(b.check_in_date as date) + 1 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. केवल एक आईडी नंबर प्रदर्शित करने के लिए विशिष्ट फ़ील्ड और पंक्ति संख्या का चयन करने से डुप्लिकेट डेटा मिलता है

  2. चयन के बाद प्रतिबद्ध

  3. मेरे पास एक ट्रिगर स्वायत्त है लेकिन उसी सत्र में केवल एक बार निष्पादित करें

  4. जावा में पीएल/एसक्यूएल फ़ंक्शन को कॉल करें?

  5. Oracle में एक चर घोषित और प्रदर्शित कैसे करें