Je kunt veel beter de ANSI-syntaxis gebruiken
SELECT *
FROM a
LEFT OUTER JOIN b ON( a.id = b.id and
b.val = 'test' )
Je kunt hetzelfde doen met de syntaxis van Oracle, maar het wordt een beetje hinkey
SELECT *
FROM a,
b
WHERE a.id = b.id(+)
AND b.val(+) = 'test'
Merk op dat ik in beide gevallen de c
. negeer table omdat u geen join-voorwaarde opgeeft. En ik neem aan dat je niet echt A naar B wilt samenvoegen en dan een Cartesiaans product met C wilt genereren.