我知道在 Oracle 中有一种WHERE
表示形式,其语法如下:LEFT JOIN
FROM t1, t2
WHERE t1.id = t2.id(+)
代替:
FROM t1 LEFT JOIN t2
ON t1.id = t2.id
PostgreSQL中有类似的东西吗?我搜索了文档,但没有找到这样的功能。
我知道在 Oracle 中有一种WHERE
表示形式,其语法如下:LEFT JOIN
FROM t1, t2
WHERE t1.id = t2.id(+)
代替:
FROM t1 LEFT JOIN t2
ON t1.id = t2.id
PostgreSQL中有类似的东西吗?我搜索了文档,但没有找到这样的功能。
Postgres(或标准 SQL)中没有这样的运算符。
在 Postgres 中编写外连接的唯一方法是使用 ANSI 显式 JOIN 语法:
select *
from table t1
left join table t2 on t1.id = t2.id;
(或者可能是相反的——自从我上次使用 Oracle运算符以来已经很久(+)
了)
手册中的更多详细信息:http ://www.postgresql.org/docs/current/static/queries-table-expressions.html#QUERIES-FROM
首先,您不应该(+)
在 Oracle 中使用运算符。Oracle 从 9i 开始支持 ANSI 连接,Oracle 建议停止使用(+)
运算符(上述语句在 Oracle 中也可以正常工作)