【问题标题】:Oracle outer join syntaxOracle 外连接语法
【发布时间】:2017-02-22 14:02:36
【问题描述】:

我的查询如下所示:

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

【问题讨论】:

  • (+)OUTER JOINLEFT JOIN 的旧语法。保留主表中的所有记录(没有加号的那个)和从表中的所有匹配记录(有加号的那个)
  • 谢谢!帮助很大

标签: sql oracle outer-join


【解决方案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

【讨论】:

  • 谢谢!帮助很大
猜你喜欢
  • 2017-11-15
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 2019-08-30
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多