PostgreSQL OUTER 连接逻辑

标签 postgresql join logic informix outer-join

我有一个非常古老的 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 outer 与 e 或 f 连接。或 d 与 e 或 f 外连接。

如果有人能将他的想法或类似的例子发给我,我将非常高兴。

最佳答案

你必须在 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 join的顺序不一定是它们执行的顺序。

参见 the documentation了解详情。 This answer也有有趣的信息。

关于PostgreSQL OUTER 连接逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920331/

相关文章:

javascript - 对除第一项之外的数组进行排序。 Array.prototype.sort()

math - 序言中的幂函数

javascript - 类型错误 : Invalid connection Details (PG-Promise)

java - PostgresQL中如何使用SCRAM-SHA-256通过jdbc连接数据库

php - 第二种意见的安全性优势,我通过 postgresql 散列和加盐用户密码的计划是否存在缺陷?

php while 循环在 while 循环内 - 需要连接吗?

ruby-on-rails - Rails Habtm加入

MySQL 从 WooCommerce 订单获取 SKU

image - Typo3 如何处理我上传的图片?

sql - 是否可以在 Postgres 中跟踪来自客户端的查询 PID?