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