首页 > 解决方案 > Oracle --> Postgres 查询

问题描述

我是一个试图将这样的查询转换为 Postgres 的 Oracle 人员。没有真正理解所有的语法等。希望有人能提供帮助吗?

甲骨文查询:

    选择 c.code、c.recommendation、s.suggested、s.sugg_by、a.approved、a.app_by
    FROM(选择代码,推荐 FROM 推荐)c,
         (选择代码,建议,sugg_by FROM 建议) s,
         (选择代码,已批准,app_by FROM 建议)
    哪里 c.code = s.code(+)
      和 c.code = a.code(+);
    

非常感激

标签: oraclepostgresqlsubquery

解决方案


你可以尝试使用OUTER JOIN

SELECT c.code, c.recommendation, s.suggested, s.sugg_by, a.approved, a.app_by
FROM (SELECT code, recommendation FROM recommendations) c 
LEFT JOIN (SELECT code, suggested, sugg_by FROM suggestions) s on c.code = s.code
LEFT JOIN (SELECT code, approved, app_by FROM suggestions) a ON c.code = a.code

您似乎不需要使用子查询,因为您在子查询中没有做任何事情只选择原始列。可以直接查询表。

SELECT
    c.code,
    c.recommendation, 
    s.suggested,
    s.sugg_by, 
    a.approved,
    a.app_by
FROM recommendations c 
LEFT JOIN suggestions s on c.code = s.code
LEFT JOIN suggestions a ON c.code = a.code

推荐阅读