[英]How to JOIN a group of tables in a database with similar name using SQL query?
例如,我有一个名为db的数据库,其中有100个表分别名为ta_1
... ta_100
。 每个表都有两列id(int)
和val(int)
。
不言而喻,您不应该以这种方式设置数据库。 有许多解决方案,从简单但平凡到坚硬但有用。
在某些时候,您必须创建一个表列表,并准备一个将它们合并在一起的语句。 使用数据库视图复制和过去将是一个良好的开端:
create view GlobalView (
tabname varchar(10),
id int,
val int)
as
select 'ta_1', id, val from ta_1
UNION ALL
select 'ta_2', id, val from ta_2
UNION ALL
select 'ta_3', id, val from ta_3
UNION ALL
.....
UNION ALL
select 'ta_100', id, val from ta_100
然后,您只需运行选择:
select avg(1.0 * val) as mean
from GlobalView
另一种方法是创建一个动态查询,您可以从外部程序调用,也可以使用“动态SQL”调用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.