[英]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.