我想要组合并查询来自“大”的数据。数据库中的表数量(目前正在增加,但超过1000个标记)。并非每个表都具有完全相同的列,但它们共享一个核心。
有没有办法可以在没有某种大量JOIN
命令的情况下解决这个问题?理想输出将包括当前在任何单个表中的每个列,对于其表不包含该列的任何行是空白的。
提前致谢!
答案 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中达到限制。在数据库中拥有如此多的类似表格听起来真是个坏主意。您可能想要重新访问数据模型。