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
.
我有一个如下所示的查询:
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
.