设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 专业 娱乐 服务 百度
当前位置: 首页 > 站长百科 > 正文

Oracle的字符串OUTER JOIN() – Migration PostgreSQL

发布时间:2021-05-16 02:11 所属栏目:[站长百科] 来源:网络整理
导读:我正在将客户端的软件数据库从Oracle迁移到PostgreSQL,我在理解查询,它做了什么以及如何迁移它时遇到了一些麻烦. 查询是: SELECT * FROM TBL1,TBL2,TBL3,TBL4 WHERE TBL3.Project_ID = TBL1.Project_ID AND TBL2.Type_ID = TBL1.Type_ID AND TBL4.PROPERT

我正在将客户端的软件数据库从Oracle迁移到PostgreSQL,我在理解查询,它做了什么以及如何迁移它时遇到了一些麻烦.

查询是:

SELECT * 
FROM TBL1,TBL2,TBL3,TBL4 
WHERE TBL3.Project_ID = TBL1.Project_ID 
 AND TBL2.Type_ID = TBL1.Type_ID 
 AND TBL4.PROPERTY_NAME(+)='Id' 
 AND TBL4.Entity_ID(+)=TBL1.Entity_ID

而我得不到的部分是’Id’上的外连接().
表上的连接,OK,但是在字符串上?我不知道它做了什么.

有人有想法吗?
谢谢.

解决方法

TBL4.PROPERTY_NAME()=’Id’表示当行内部连接时,该值必须为’Id’,但是当该行是外连接时,该条件被评估为true

但是您应该将语句重写为标准:

SELECT * 
FROM TBL1
JOIN TBL2 ON TBL2.Type_ID = TBL1.Type_ID
JOIN TBL3 ON TBL3.Project_ID = TBL1.Project_ID
LEFT JOIN TBL4 ON TBL4.Entity_ID=TBL1.Entity_ID AND TBL4.PROPERTY_NAME='Id'

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读