【发布时间】:2016-04-07 17:34:39
【问题描述】:
我正在尝试从名称在另一个表中的表中获取数据。
select * from (select tab1.value from tab1 join tab2 on tab1.id = tab2.id)
当我尝试这个时,我得到 tab1.value 而不是外部选择 *
有没有办法从外部选择中获取数据?
让我把它分成两个 sql 语句,这样会更容易一些
1) select tab1.value from tab1 join tab2 on tab1.id = tab2.id
使用上面的 tab1.value 作为 2) 的表名
2) 从 tab1.value 中选择 *
【问题讨论】:
-
你不能用纯 SQL 做到这一点。为此,您需要动态 SQL。
-
查询正确。它显示了您的内部查询中的所有行。如果您能更好地解释您的需求,我们可能会为您提供帮助。
-
外部查询的表名作为一行存储在内部查询的其中一个表中。我需要查找该值并从中获取数据
-
假设 tab1.value 是一个字符串 - 你不想从 tab1.value 中选择 *,你想从名称为 tab1.value 的表中选择 *。那不是一回事。如果您的第一个表是 tab1,则从中选择的方法是 select ... from tab1,而不是 from 'tab1'(tab1 显示为字符串)。正如 a_horse... 所说,您需要为此使用动态 sql。