Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 请帮助我用Oracle中的符号(+)重写查询_Sql_Oracle_Join - Fatal编程技术网

Sql 请帮助我用Oracle中的符号(+)重写查询

Sql 请帮助我用Oracle中的符号(+)重写查询,sql,oracle,join,Sql,Oracle,Join,请帮助我用Oracle的符号+重写查询,即没有联接会发生什么 select * from tbl1 left join ( tbl2 join tbl3 on tbl3.id = tbl2.a and tbl3.b = 50 ) on tbl1.id = tbl2.c 我想你想要: 以t23为例 挑选* 来自tbl2, tbl3 其中tbl3.id=tbl2.a

请帮助我用Oracle的符号+重写查询,即没有联接会发生什么

select  *
from    tbl1
left join (
                tbl2 join tbl3
                on tbl3.id = tbl2.a
                and tbl3.b = 50
            )
on   tbl1.id = tbl2.c
我想你想要:

以t23为例 挑选* 来自tbl2, tbl3 其中tbl3.id=tbl2.a tbl3.b=50 挑选* 从tbl1, t23 其中tbl1.id=t23.c+ 或:

挑选* 从tbl1, 挑选* 来自tbl2, tbl3 其中tbl3.id=tbl2.a tbl3.b=50 t23 其中tbl1.id=t23.c+
但是,请坚持使用现代ANSI语法,不要使用30年前被取代的令人困惑的传统逗号连接。

为什么要将现代ANSI语法转换为30年前被取代的传统专有语法?OLAX著名的最后一句话中仍然有隔离系统,除非。Oracle中有一些功能仍然需要旧的连接语法,最显著的是,提交时刷新的物化视图;在很多情况下,Oracle内部将ANSI语法转换为旧的Oracle语法(Oracle是如何实现ANSI语法的)是有缺陷的。使用ANSI语法的同一查询在查询实际上完全正常时抛出错误;在使用Oracle语法重写它之后,它确实工作得非常好。所以,我同意-坚持ANSI语法,除非。。。