Oracle 中的 OUTER APPLY 是否有其他选择?

5 sql-server oracle outer-apply

在以下示例中,我将tbA.ID传递给tbC查询。在这种情况下,我使用了 SqlServer 的 OUTER APPLY 运算符。

SELECT 
  ...
FROM (SELECT ID FROM TableA ...) tbA
OUTER APPLY (SELECT ... FROM TableB tbB WHERE tbA.ID = tbB.ID) tbC
...
Run Code Online (Sandbox Code Playgroud)

在 Oracle 中,我们没有 OUTER APPLY 运算符。那么,如何在不修改查询结构的情况下将值 (tbA.ID) 从左侧查询传递到连接的右侧查询 (tbC)?

Oracle 中的 OUTER APPLY 是否有其他选择?

T.S*_*.S. 2

根据评论编辑:

在 Oracle 12 中支持 OUTER APPLY(可能作为 SQL 标准的一部分)。由于您的 SQL 是由实体框架生成的,因此您所需要做的就是连接到 Oracle 并查看生成的查询输出是什么样子。我觉得你的问题是基于恐惧,“它在 Oracle 中如何运作?”。运行代码看看。

除此之外,Oracle 内联查询的工作方式就像表一样。你的问题是,“还有其他选择吗……?” - 是的,见下文:

SELECT 
  ...
FROM 
    (SELECT ID FROM TableA ...) tbA left join
    (SELECT ID FROM TableB ...) tbB On tbA.ID = tbB.ID
 ...
Run Code Online (Sandbox Code Playgroud)