Синтаксис внешнего соединения Oracle

sql oracle outer-join

83 просмотра

1 ответ

У меня есть запрос, который выглядит так:

select *
from find fsc,
        let lf,
        cust cus,
        STRIKE ist
WHERE   fsc.id = lf.id
AND     ist.ID_old = fsc.ID_old
AND     lf.cust_id = cus.cust_id(+)

Я знаю (+) старый синтаксис для объединения, но я не уверен, что он на самом деле делает с этим запросом. Может ли кто-нибудь объяснить это и показать этот запрос без (+) в операторе where, используя более современный синтаксис объединения?

Автор: SJR59 Источник Размещён: 12.11.2019 09:42

Ответы (1)


1 плюс

Решение

Я верю, что вы хотите этого:

select *
from find fsc join
     let lf
     on fsc.id = lf.id join
     STRIKE ist
     on ist.ID_old = fsc.ID_old left join
     cust cus
     on lf.cust_id = cus.cust_id;

Честно говоря, внешнее соединение, вероятно, не является необходимым. Почему бы lfэто cust_idне является действительным? Единственная разумная возможность - это значение NULL.

Автор: Gordon Linoff Размещён: 13.10.2016 12:38
Вопросы из категории :
32x32