Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

dua kiri luar bergabung tidak berfungsi Oracle sql

Sepertinya masalahnya adalah, Anda tidak menggunakan (+) untuk language_id . Anda cek.
Tabel Anda tergabung di luar, jadi language_id adalah NULL ketika tidak ada catatan yang ditemukan, tetapi kemudian Anda memeriksa language_id = 2 , tetapi ? language_id adalah NULL .

Saya juga tidak melihat di mana Anda menggunakan hasil dari a_tl atau b_tl , kira itu hanya masalah posting Anda, bukan pertanyaan asli Anda?

Namun, harap gunakan gabungan eksplisit alih-alih sintaks lama. Setelah Anda terbiasa, akan jauh lebih mudah untuk membaca dan memahami.
Permintaan Anda juga dapat memanfaatkan COALESCE (atau NVL jika Anda suka):

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 )

Semoga pertanyaan Anda benar, tanyakan jika tidak berhasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui baris dalam satu tabel dengan data dari tabel lain berdasarkan satu kolom di masing-masing menjadi sama

  2. Menghitung nilai nol sebagai nilai unik

  3. Terhubung ke Oracle DB menggunakan sqlplus

  4. PLS-00172:kesalahan string literal terlalu panjang dilemparkan saat mengatur nilai string besar ke CLOB

  5. Cara mengembalikan parameter keluaran Oracle dari prosedur tersimpan di .NET