【发布时间】:2013-04-15 20:55:41
【问题描述】:
我正在尝试编写一个复合许多 MySQL 视图的查询。我使用的 MySQL 版本是 Amazon 的 AWS RDS 服务提供的最新版本。这些视图如下所示:
视图 1:“AAA 事件计数”
- Col1:时间戳
- Col2:计数
视图 2:“BBB 事件计数”
- Col1:时间戳
- Col2:计数
我有大约 100 个这样的视图。
我想要一个查询,将这些数据塑造成如下所示:
- Col1:时间戳
- Col2:计数
- Col3:事件类型
这意味着数据看起来像:
2013-01-01T00:00:00Z 10 BBB
2013-01-01T00:00:00Z 10 AAA
2013-04-10T00:00:00Z 26 AAA
2013-04-10T00:05:00Z 28 AAA
时间戳不会是唯一的,但时间 + 事件类型的组合是唯一的。
我尝试了多种方法,但都没有达到我想要的效果。性能不是问题,因为这些是摘要报告,而不是 OLTP 查询。
对解决此问题的好方法有什么建议吗?
【问题讨论】:
-
只有mysql还是php+mysql?
-
只是 MySQL。我实际上是将查询结果拉入 Excel 作为数据透视表的输入。
-
SELECT TABLE_NAME, count(*) FROM information_schema.`TABLES` WHERE TABLE_TYPE LIKE 'VIEW' AND TABLE_SCHEMA LIKE 'database_name' GROUP BY table_Name;可能会让您入门(100% 未经测试)。尽管您因此丢失了时间戳,但这是行不通的。我希望你不需要 UNION 每个视图.. -
因此,方法是运行一个动态查询,对您的所有视图执行
UNION。显然,这是通过information_schema.TABLES上的循环或只是SHOW TABLES WHERE...;结果的结果来完成的。