PostgreSQL OUTER连接逻辑

问题描述 投票:1回答:1

我有一个非常古老的informix程序,我想在我的新PostgreSQL数据库中使用它。我是Postgres的新手,我觉得这些连接非常不同。

这是我旧的Informix代码的一部分:

CREATE PROCEDURE mw_getsvid(bid INT)
RETURNING INT;  

DEFINE aid INT;
SELECT a.id INTO aid
    FROM cerberus c, delphi d,
        OUTER (emilia e, fragile f)
    WHERE c.id = [...]

    RETURN aid;

END PROCEDURE;

所以我要做的是c外部连接e或f。或者用e或f连接外部连接。

如果有人能把他的想法或类似的例子发给我,我会很高兴的。

postgresql join logic informix outer-join
1个回答
2
投票

您必须使用PostgreSQL的SQL标准连接语法:

FROM cerberus c
   JOIN delphi d ON d.col1 = c.col2
   LEFT JOIN emilia e ON e.col3 = c.col4
   LEFT JOIN fragile f ON f.col5 = c.col6 AND f.col7 = d.col8

联接是左关联的,但您可以使用括号来覆盖它。当然,编写doen连接的顺序不一定是它们执行的顺序。

有关详细信息,请参阅the documentationThis answer也有有趣的信息。

© www.soinside.com 2019 - 2024. All rights reserved.