3

我知道在 Oracle 中有一种WHERE表示形式,其语法如下:LEFT JOIN

  FROM t1, t2
 WHERE t1.id = t2.id(+)

代替:

  FROM t1 LEFT JOIN t2
    ON t1.id = t2.id

PostgreSQL中有类似的东西吗?我搜索了文档,但没有找到这样的功能。

4

1 回答 1

8

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 中也可以正常工作)

于 2013-10-22T09:49:43.927 回答