【发布时间】:2018-12-22 09:20:42
【问题描述】:
我正在使用第 3 方 MYSQL 数据库,我无法控制它,除非我可以从中读取。它包含 51 个具有相同列结构但名称略有不同的表。他们持有不同数据源的每日摘要。示例表:
CREATE TABLE `archive_day_?????` (
`dateTime` int(11) NOT NULL,
`min` double DEFAULT NULL,
`mintime` int(11) DEFAULT NULL,
`max` double DEFAULT NULL,
`maxtime` int(11) DEFAULT NULL,
`sum` double DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`wsum` double DEFAULT NULL,
`sumtime` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
在哪里??????更改以指示保存的数据类型。
dateTime 字段在系统运行后每天午夜的所有表中镜像。
我想使用 dateTime 上的内部联接跨所有表生成单个数据集。但是为了避免写
SELECT ad1.maxtime as ad1_maxtime, ad2.maxtime as ad2_maxtime...
9 个字段 51 次有没有一种方法可以批量创建别名,例如
ad1.* as ad_*, ad2.* as ad_* and so on.
我查看了Create Aliases In Bulk?,但这似乎不适用于 MySQL。最终数据被 Django ORM 使用。
编辑:不幸的是,Union 没有唯一标识这些字段或将它们组合在一起,例如
SELECT * FROM `archive_day_ET` UNION ALL SELECT * FROM `archive_day_inTemp`
结果:
【问题讨论】:
-
这肯定只是一个(长)联合!?!
-
@Strawberry 感谢您的想法,遗憾的是它没有给出我想要的结果。请参阅编辑后的回复。
-
MySql 哪个版本?顺便说一句,为什么不将它们与每个联合选择不同的附加源字段联合起来?
-
关于other SO post,MySql有group_concat。
-
@LukStorms 谢谢卢克。我来看看 group_concat。您是否有一个易于访问的添加附加源字段的示例?
标签: mysql sql inner-join alias