我正在尝试从名称在另一个表中的表中获取数据。
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
中选择*答案 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。您无法从该结果集中提取其他列。