我试图从名称在另一个表中的表中获取数据 .
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 回答
在您的查询中,外部查询可以选择的唯一内容是您从内部查询中获取的内容 . 如果您希望外部选择查询执行更多操作,则需要为其提供更多内容,而不仅仅是内部查询 .
基本上,“select *”从内联视图返回结果集 . 如果您想要显示tab1的更多信息,则需要使用它 . 事实是你根本不需要这样做:
不需要内联视图 . 顺便说一句,“SELECT *”是不好的做法 .
可以这样想:如果我问你钥匙圈上的一把钥匙,那么期待你钥匙圈上的所有钥匙作为答案的一部分,你会认为我(最多)一个螺丝松动了 .
您最初要求tab1.value . 您无法从该结果集中提取其他列 .