加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

特殊的Oracle外连接语法案例

发布时间:2020-12-12 13:11:12 所属栏目:百科 来源:网络整理
导读:我在一个应该从Oracle外连接语法移植到SQL标准外连接语法的查询中看到以下内容: SELECT ...FROM A,B,C,D,EWHERE A.A_ID = B.A_IDAND B.B_ID = C.A_ID(+)AND B.B_KEY = C.B_KEY(+)AND C.C_ID = D.C_ID(+)AND B.A_ID = E.A_ID(+)AND B.B_KEY = E.B_KEY(+)AND
我在一个应该从Oracle外连接语法移植到SQL标准外连接语法的查询中看到以下内容:
SELECT ...
FROM A,B,C,D,E
WHERE A.A_ID = B.A_ID
AND B.B_ID = C.A_ID(+)
AND B.B_KEY = C.B_KEY(+)
AND C.C_ID = D.C_ID(+)
AND B.A_ID = E.A_ID(+)
AND B.B_KEY = E.B_KEY(+)
AND 'CONSTANT' = C.X_ID(+)

现在翻译外连接语法通常是一个非常机械的过程,但最后一行让我感到困惑.这是什么意思?它有什么影响?

我试图执行机械过程.我希望我记得它.

这导致:

SELECT ...
FROM A
         join B on A.A_ID = B.A_ID
    left join C on B.B_ID = C.A_ID and B.B_KEY = C.B_KEY and 'CONSTANT' = C.X_ID
    left join D on C.C_ID = D.C_ID
    left join E on B.A_ID = E.A_ID and B.B_KEY = E.B_KEY

总之,我认为Leigh Riffel的答案是正确的.

注意

在过去,记忆的规则是:oracle其中A.a = B.b()在SQL-Server旧语法中成为A.a * = B.b加上相反的一方并成为一个星,这意味着A.a = B.b上的左连接B.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读