'WHERE'语法相当于PostgreSQL中的LEFT OUTER JOIN

时间:2013-10-22 09:18:37

标签: sql postgresql join relational-database

我知道Oracle中WHERE代表LEFT JOIN的语法如下:

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

而不是:

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

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

1 个答案:

答案 0 :(得分:7)

Postgres(或标准SQL)中没有这样的运算符。

在Postgres中编写外连接的唯一方法是使用ANSI显式JOIN语法:

select *
from table t1
  left join table t2 on t1.id = t2.id;

(或者它可能反过来 - 自从我上次使用Oracle (+)运算符以来 age

手册中的更多详细信息:http://www.postgresql.org/docs/current/static/queries-table-expressions.html#QUERIES-FROM

首先,您不应该在Oracle中使用(+)运算符。自9i以来,Oracle一直支持ANSI连接,Oracle建议停止使用(+)运算符(以上语句在Oracle中也可以正常工作)