Anda jauh lebih baik menggunakan sintaks ANSI
SELECT *
FROM a
LEFT OUTER JOIN b ON( a.id = b.id and
b.val = 'test' )
Anda dapat melakukan hal yang sama menggunakan sintaks Oracle juga tetapi ini menjadi sedikit hinkey
SELECT *
FROM a,
b
WHERE a.id = b.id(+)
AND b.val(+) = 'test'
Perhatikan bahwa dalam kedua kasus, saya mengabaikan c
tabel karena Anda tidak menentukan kondisi bergabung. Dan saya berasumsi bahwa Anda tidak benar-benar ingin menggabungkan A ke B dan kemudian menghasilkan produk Cartesian dengan C.