我有一个查询,看起来像这样:
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。
lf
cust_id
NULL