mysql - 在一个数据库中查询/连接 1000 多个 mySQL 表

标签 mysql

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

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

最佳答案

听起来您想要一个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

当使用数千个表时,您可能会开始达到 MySQL 的限制。在数据库中有这么多相似的表听起来是一个非常糟糕的主意。您可能想重新审视您的数据模型。

关于mysql - 在一个数据库中查询/连接 1000 多个 mySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988547/

相关文章:

mysql - sql加入where和1-n连接

mysql - 具有相同查询的死锁

php - 将输入的日期保存到数据库 php

mysql - mysql数据库如何实时工作流程或在搜索请求时?

PHPStorm 表单处理 : PHP variable not echoing, 也不发布到 sql

mysql - 如何在MYSQL中对不同长度的字母数字列进行排序?

php - 通过安排 PHP/MySQL INSERT 按日期发布文章

MySQL查询性能?

mysql - 双重计数语句MySQL查询

php inside php with $_session echo