Oracle 外连接语法

Oracle outer join syntax

我有一个如下所示的查询:

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 语句中不带 (+) 的情况下显示此查询吗?

我相信你想要这个:

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.