MySQL中如何把一个查询语句的结果作为一个表名?

CooCls
  • 77

现有表tab
image.png
字段tbname值对应一个表名table1
image.png

tab中的字段tbname的值对应数据库中众多表的其中一个表的表名

查询语句一:
SELECT tbname FROM tab WHERE id = 1; ==> table1
将此结果作为查询语句二的查询对象表名,即此句的结果是数据库中已经存在表的表名

查询语句二:
SELECT * FROM table1; ==> 所需数据
即此句中的'table1'实为一变量值,语句二查询哪个表由语句一的结果指定

如何将两个select语句整合成一个?
将一个查询语句的结果当做另一个查询语句要查询的表的表名...

回复
阅读 6.4k
6 个回答

https://bbs.csdn.net/topics/3...
这个地址可以帮助题主解决问题。
按题主的意思应该是下边这样吧
SET @sssqqqlll = concat( 'SELECT * FROM ', ( SELECT tbname FROM tab WHERE id = 1 ));

PREPARE stmt FROM @sssqqqlll;

EXECUTE stmt;

SELECT * FROM (SELECT tbname FROM tab WHERE id = 1) as table1;

SELECT tab.tbname, table1.id, table1.age, table1.name, table1.tel
FROM tab
INNER JOIN table1
ON tab.id= table1.id
WHERE id = 1

select * from (select tbname from tab where id=1)
SELECT table1.* FROM (SELECT tbname FROM tab WHERE id = 1) table1

查出一个临时表,然后取别名,再查询这个别名的表即可

sql的子查询了解下相关知识吧,弥补下这方面知识就能解决你问的问题了

宣传栏