Je mnohem lepší používat syntaxi ANSI
SELECT *
FROM a
LEFT OUTER JOIN b ON( a.id = b.id and
b.val = 'test' )
Stejnou věc můžete udělat také pomocí syntaxe Oracle, ale je to trochu hinkey
SELECT *
FROM a,
b
WHERE a.id = b.id(+)
AND b.val(+) = 'test'
Všimněte si, že v obou případech ignoruji c
tabulky, protože nezadáte podmínku spojení. A předpokládám, že ve skutečnosti nechcete spojit A do B a pak vytvořit kartézský součin s C.