鍍金池/ 問答/數(shù)據(jù)庫/ 寫sql腳本怎樣關聯(lián)查詢100張表?

寫sql腳本怎樣關聯(lián)查詢100張表?

ps:是要寫一個純sql腳本,不用java、python等程序
需要寫一個數(shù)據(jù)庫的sql腳本并執(zhí)行,需要關聯(lián)100多張表,用uion一個個手寫要殘廢了,怎樣才能優(yōu)雅地寫出一個關聯(lián)100張表的sql查詢語句呢?
需要關聯(lián)的表名為:
beijing201711
beijing201710
beijing201709
beijing201708
beijing201707
beijing201706
beijing201705
beijing201704
beijing201703
beijing201702
beijing201701
shagnhai201711
shagnhai201710
shagnhai201709
shagnhai201708
shagnhai201707
shagnhai201706
shagnhai201705
shagnhai201704
shagnhai201703
shagnhai201702
shagnhai201701
nanjing201711
nanjing201710
nanjing201709
nanjing201708
nanjing201707
nanjing201706
nanjing201705
nanjing201704
nanjing201703
nanjing201702
nanjing201701
......

回答
編輯回答
陌南塵

為什么不加一列,把這100多個表并成一個表呢?

2017年2月17日 02:34
編輯回答
莓森

從你的數(shù)據(jù)庫表名上來看,這個應該是某些業(yè)務的流水分表,你應當根據(jù)你的業(yè)務邏輯創(chuàng)建查詢的時候選擇應有的表,比如查詢北京的2017年8月的數(shù)據(jù),則select * from beijing201708 ,而不是從所有表里面where時間。

2017年1月9日 00:34
編輯回答
冷眸

寫存儲過程吧,oracle和mysql都支持動態(tài)sql

2017年7月5日 14:35
編輯回答
心夠野

創(chuàng)建一個 記錄當前所有表名 的表,里面的字段是這100多個表名,每新建一個表就往這個表新加一行數(shù)據(jù)
這樣關聯(lián)的sql就可以使用這個表里面的數(shù)據(jù)拼出來了

2017年9月18日 16:09
編輯回答
愿如初

如果數(shù)據(jù)庫設計沒問題的話,那就是你理解的邏輯出問題了

2018年3月11日 17:14
編輯回答
詆毀你

巧用Excel

2018年1月30日 22:33
編輯回答
耍太極

所有需要的表存入tables_list之后使用下面的sql就可以生成一個union所有表的sql

select substring_index(group_concat("select * from `",table_name,"` union all" SEPARATOR ' '),'union all',count(1)) sql_text from tables_list;

然后使用文本編輯也是非常簡單吧。。所有表列進去,一個批量替換文本就可以了。。

2017年8月14日 05:58