【问题标题】:Mysql union multiple tables into one large tableMysql将多张表合并为一张大表
【发布时间】:2012-12-15 22:18:09
【问题描述】:

我有一个选择多个表名称的查询:

从 INFORMATION_SCHEMA.TABLES 中选择 TABLE_NAME 作为表

+---------------+
| TABLES        |
+---------------+
| A             |
| B             |
| <more tables> |
+---------------+

我想创建一个查询,其中每个表中的每个值都被联合在一起:

+------------+----+----------+
| table_name | id | name     |
+------------+----+----------+
| A          | 1  | item1    | <- Items from Table A
| A          | 2  | item2    | 
| A          | 3  | item3    |
| B          | 1  | item1    | <- Items from Table B
| B          | 2  | item2    |
| <entries for other tables> |
+------------+----+----------+

有什么想法吗?提前谢谢!

【问题讨论】:

  • 这听起来不像是聚合 (COUNT(),MAX(),MIN(),SUM(),etc),而是像 UNION ALLORDER BY table_name
  • 对不起,我将标题和标签更改为要合并而不是聚合。谢谢。

标签: mysql union


【解决方案1】:

假设您在最松散的意义上使用“聚合”...

select 'A' as table_name, id, name
from table_a
union all
select 'B' as table_name, id, name
from table_b

【讨论】:

  • 这是在正确的轨道上!我很好奇如何为几百张桌子做一个联合。感谢您的快速响应。
  • 有很多行。除非这些表很小,否则这将是一个缓慢的查询。听起来您的数据库设计很糟糕.. - 在我看来,需要访问架构详细信息并联合许多表指向问题。
  • 一个糟糕的数据模型的工资是打字,而且很多。
  • 这些表格非常小​​,来自一组 wordpress 网站。我认为有必要对表名进行某种循环,但我从未构造过 mysql 循环语句来合并表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-07
  • 2019-11-15
  • 1970-01-01
相关资源
最近更新 更多