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

我试图从名称在另一个表中的表中获取数据 .

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

当我尝试这个我得到tab1.value而不是外部选择*

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

让我把它分成两个sql语句,使得更容易一些

1)从tab1.id = tab2.id上的tab1 join tab2中选择tab1.value

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

2)从tab1.value中选择*

回答(2)

3 years ago

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

3 years ago

基本上,“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 . 您无法从该结果集中提取其他列 .