首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle join到Ansi join的转换

Oracle join到Ansi join的转换
EN

Stack Overflow用户
提问于 2017-05-16 20:25:14
回答 1查看 76关注 0票数 2

我需要将以下oracle sql转换为基于ansi的sql-

代码语言:javascript
复制
Select t1.c1, t2.c2, t1.c3 from t1, t2 where
T1.c1=t2.c1(+) and
T1.c2=t2.c2(+) and
T1.c3=t2.c3 and
T1.c4=t2.c4 and
T1.c1='1'

热心的帮助

EN

回答 1

Stack Overflow用户

发布于 2017-05-16 20:27:33

如果t2中的所有列都具有(+)修饰符,则这将是外连接。

这看起来像是:

代码语言:javascript
复制
Select t1.c1, t2.c2, t1.c3
from t1 left join
     t2 
     on T1.c1 = t2.c1 and T1.c2 = t2.c2 and
        T1.c3 = t2.c3 and T1.c4 = t2.c4
where T1.c1 = '1';

但是,您的版本是一个内连接,因为有些列确实需要匹配--因此在第二个表中需要有一个匹配的行。

因此,真正的等价物是:

代码语言:javascript
复制
Select t1.c1, t2.c2, t1.c3
from t1 join
     t2 
     on T1.c1 = t2.c1 and T1.c2 = t2.c2 and
        T1.c3 = t2.c3 and T1.c4 = t2.c4
where T1.c1 = '1';

(+)是不相关的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44001429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档