2017-02-23 58 views
0

我试图写这样的东西。关于outter查询数据的Oracle子查询

SELECT x, 
,y 
,(Select z from innerTable where innerTable.this = outterTable.that 
FROM outterTable 
where blahblah 

基本上,这个特定的列我想映射到另一个表中的值。但是,当我尝试这样做时,SQLDeveloper只会将我的Select语句打印为列标题,并在其下面有空值。

+1

为什么不使用连接? – JohnHC

+0

你可以请张贴一些样本数据和需要的结果吗?你的表的命名是相当混乱的:为什么你查询“外”表,如果它是“外”? – Aleksej

+0

我不想使用连接,因为此映射仅适用于一列。作为一个子查询来做它似乎更清晰。 – Steve

回答

0

你可以给列一个别名来解决标题:

select x, y, 
     (Select z from innerTable where innerTable.this = outterTable.that 
     ) as z 
from outterTable 
where blahblah; 

然而,NULL值是因为没有比赛,所以这是一个不同的问题。

+2

如果z表中有多个值,这会如何表现? – JohnHC

+1

@JohnHC。 。 。 OP指出查询运行。在这种情况下,它会返回一个错误,但这似乎不成问题。 –

+0

感谢您的别名评论。当我这样做的时候自己选择子查询,但是它的工作原理是用一个硬值来代替outter表值。这些值似乎在每个表格中都匹配。所以这就是为什么我认为它必须是我的子查询语法的问题 – Steve