Использование ANSI SQL:
select * from
TABLE1 "TABLE1"
left join TABLE1 "TABLE2" on(TABLE1.c1 = TABLE2.C1 and TABLE1.c2 = TABLE2.C2)
left join TABLE3 "TABLE3" on(TABLE1.c3 = TABLE3.c3)
Используя синтаксис Oracle Join, вы получаете:
select * from TABLE1 "TABLE1", TABLE1 "TABLE2", TABLE3 "TABLE3"
where
TABLE1.c1 = TABLE2.c1 (+)
and TABLE1.c2 = TABLE2.c2 (+)
and TABLE1.c3 = TABLE3.c3 (+)
(+) здесь представляет левое соединение. Я лично предпочитаю ANSI SQL. Мне кажется чище. Ваши предикаты соединения могут не совпадать с моим примером, имейте это в виду.