O wiele lepiej będzie, jeśli użyjesz składni ANSI
SELECT *
FROM a
LEFT OUTER JOIN b ON( a.id = b.id and
b.val = 'test' )
Możesz zrobić to samo, używając składni Oracle, ale jest to trochę skomplikowane
SELECT *
FROM a,
b
WHERE a.id = b.id(+)
AND b.val(+) = 'test'
Zauważ, że w obu przypadkach ignoruję c
tabeli, ponieważ nie określasz warunku sprzężenia. I zakładam, że tak naprawdę nie chcesz łączyć się z A do B, a następnie generować kartezjański produkt z C.