在一个数据库中查询/加入1000+ mySQL表

时间:2015-05-01 14:15:57

标签: mysql mysqli

我想要组合并查询来自“大”的数据。数据库中的表数量(目前正在增加,但超过1000个标记)。并非每个表都具有完全相同的列,但它们共享一个核心。

有没有办法可以在没有某种大量JOIN命令的情况下解决这个问题?理想输出将包括当前在任何单个表中的每个列,对于其表不包含该列的任何行是空白的。

提前致谢!

1 个答案:

答案 0 :(得分:0)

听起来你想要union all,而不是join

select t1.col1, t1.col2, . . . , NULL as coln
from table1 t1 union all
select t2.col1, NULL as col2, . . . t2.coln
from table t2 union all
. . .

您必须列出所有表的所有列。您可以使用电子表格生成代码。或者,您可以从information_schema.columns中提取列以排列union s。

使用数千个表时,您可能会开始在MySQL中达到限制。在数据库中拥有如此多的类似表格听起来真是个坏主意。您可能想要重新访问数据模型。