SQL查询SELECT FROM [从表名中选择值]

时间:2016-04-07 17:34:40

标签: sql oracle

我正在尝试从名称在另一个表中的表中获取数据。

select * from(select tab1.value from tab1 join tab2 on tab1.id = tab2.id)

当我尝试这个时,我得到tab1.value而不是外部的select *

有没有办法从外部选择中获取数据?

让我将其分解为两个sql语句,使其更容易

1)从tab1.id = tab2.id

上的tab1 join tab2中选择tab1.value

使用上面的tab1.value作为2)的表名

2)从tab1.value

中选择*

2 个答案:

答案 0 :(得分:0)

在您的查询中,外部查询可以选择的唯一内容是您从内部查询中获取的内容。如果您希望外部选择查询执行更多操作,则需要为其提供更多内容,而不仅仅是内部查询。

答案 1 :(得分:0)

基本上,“select *”从内联视图返回结果集。如果您想要显示tab1的更多信息,则需要使用它。事实是你根本不需要这样做:

select tab1.value, tab1.other_column, tab1.other_column_i_want, etc 
  from tab1
  join tab2 on tab2.id = tab1.id;

不需要内联视图。顺便说一句,“SELECT *”是不好的做法。

按照这种方式思考:如果我要求你从钥匙圈中取出一把钥匙,那么期待你钥匙圈上的所有钥匙作为答案的一部分,你会认为我(最好)拧一个螺丝。

您最初要求使用tab1.value。您无法从该结果集中提取其他列。