2014-09-02 2 views
0

Мне нужно использовать левое внешнее соединение на трех таблицах. Пример: у меня есть три таблицы под названием A, B и C. Я хочу получить результат, как Левое внешнее соединение (B левое внешнее соединение c). Каков наилучший способ сделать это.Левое внешнее соединение на трех таблицах

Я написал что-то вроде этого.

select * from A,B,C where A.column_a=B.column_a(+) and B.column_b=C.column_b(+); 
+3

Почему бы не использовать 'левый внешний join' синтаксис вместо Oracle-specific '(+)', поскольку вы, похоже, знаете, как это выразить? –

ответ

1

в зависимости от того, как таблицы связаны (что не совсем ясно из вашего вопроса),

select * 
from A 
    left join B on b.column_a = a.column_a 
    left join C on c.column_b = b.column_b 

или

select * 
from A 
    left join (B left join C on c.column_b = b.column_b) 
     on b.column_a = a.column_a