FOR中的SQL查询动态表名称

Sib*_*ain 7 mysql sql postgresql

我有一个表tbl1,它有一个列tbl_names.此列包含其他一些表的名称.
现在我想用以下格式编写查询:
select * from (select tbl_names from tbl1)

我知道上面的查询不起作用,但我怎么能做到这一点?我是否需要编写存储过程或类似的东西并循环第二个查询的每个值并执行第一个查询?

谢谢

Car*_*lez 7

您可以使用预准备语句

SET @a = (select tbl_names from tbl1);
SET @x := CONCAT('SELECT * FROM ', @a);
Prepare stmt FROM @x;
Execute stmt;
DEALLOCATE PREPARE stmt;
Run Code Online (Sandbox Code Playgroud)

PREPARE语法

干杯.