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

दो बाएं बाहरी जुड़ें Oracle sql काम नहीं कर रहे हैं

ऐसा लगता है कि समस्या यह है कि आप (+) . का उपयोग नहीं कर रहे हैं आपके language_id . के लिए जाँच करता है।
आपकी तालिका बाहरी रूप से जुड़ी हुई है, इसलिए language_id है NULL जब कोई रिकॉर्ड नहीं मिलता है, लेकिन तब आप language_id = 2 . की जांच करते हैं , लेकिन ? language_id है NULL

मैं यह भी नहीं देखता कि आप a_tl . के परिणामों का उपयोग कहां करते हैं या b_tl , लगता है कि यह सिर्फ आपकी पोस्ट की समस्या है, आपकी मूल क्वेरी की नहीं?

हालांकि, कृपया पुराने सिंटैक्स के बजाय स्पष्ट जॉइन का उपयोग करें। एक बार जब आप इसके अभ्यस्त हो जाते हैं, तो इसे पढ़ना और समझना बहुत आसान हो जाता है।
आपकी क्वेरी COALESCE (या NVL अगर आपको पसंद है):

SELECT COALESCE( a_tl.a_disp_name, a.a_name ) AS a_name,
       COALESCE( b_tl.b_disp_name, b.b_name ) AS b_name,
       a.a_id,
       b.b_id
FROM a
JOIN b ON ( b.b_id = a.a_id )
LEFT JOIN a_tl ON ( a_tl.a_id = a.a_id AND a_tl.language_id = 2 )
LEFT JOIN b_tl ON ( b_tl.b_id = b.b_id AND b_tl.language_id = 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. ado.net DBParameter में मान के रूप में एक सरणी पास करें

  2. अगर Oracle मौजूद नहीं है तो डालें

  3. PHP का OCI8/Oracle oci_bind_array_by_name मेरे लिए काम क्यों नहीं कर रहा है?

  4. ANSI और गैर-ANSI जॉइन में क्या अंतर है, और आप किसकी अनुशंसा करते हैं?

  5. जावा प्रोग्राम में पीएल/एसक्यूएल पैकेज कोड को कॉल करना