暂无图片
多列外关联SQL语句写法
我来答
分享
zjfgx
2023-06-19
多列外关联SQL语句写法

请问如下3条语句结果是否相同?

1、标准外关联:
SELECT A.C1, A.C2, B, C1, B.C2 FROM A LEFT OUTER JOIN B ON (A.C1 = B.C1 AND A.C2 = B.C2);

2、ORACLE写法1:

SELECT A.C1, A.C2, B, C1, B.C2
FROM A, B
WHERE A.C1 = B.C1(+)
AND A.C2 = B.C2(+);

3、ORACLE写法2:
此种写法是否可以?

SELECT A.C1, A.C2, B, C1, B.C2
FROM A, (SELECT C1, C2, C1 || C2 C12 FROM B) B
WHERE A.C1 || A.C2 = B.C12(+)

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
Thomas

这种写法可以的。不过严谨些应该是:

SELECT A.C1, A.C2, B, C1, B.C2
FROM A, (SELECT C1, C2, C1 ||'/'|| C2 C12 FROM B) B
WHERE A.C1 || '/'||A.C2 = B.C12(+)

暂无图片 评论
暂无图片 有用 2
暂无图片
zjfgx
题主
2023-06-20
我的提问中的有疑问的是中间写法(下面sql)也是相同的呗?(提问中疑问标错地方了) SELECT A.C1, A.C2, B, C1, B.C2 FROM A, B WHERE A.C1 = B.C1(+) AND A.C2 = B.C2(+);
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏