MySQL查询两个包含不同日期的表
我有一个小问题不能处理好。 我需要从两个表中导出一些数据。两个表仅包含两个字段。第一个是日期时间,第二个包含值。 我想用图表把这些数据按日期分组。让我举例说明 表A:MySQL查询两个包含不同日期的表,mysql,join,Mysql,Join,我有一个小问题不能处理好。 我需要从两个表中导出一些数据。两个表仅包含两个字段。第一个是日期时间,第二个包含值。 我想用图表把这些数据按日期分组。让我举例说明 表A: SELECT * FROM tableA order by Time desc limit 10; 输出: 2016-08-26 12:50:10 27 2016-08-26 12:45:02 26.9 2016-08-26 12:40:04 26.8 2016-08-26 12:35:03 26
SELECT * FROM tableA order by Time desc limit 10;
输出:
2016-08-26 12:50:10 27
2016-08-26 12:45:02 26.9
2016-08-26 12:40:04 26.8
2016-08-26 12:35:03 26.5
2016-08-26 12:30:03 27
2016-08-26 12:25:10 27.1
2016-08-26 12:21:28 27.2
2016-08-26 12:20:58 26.9
2016-08-26 12:20:28 27
2016-08-26 12:20:00 26.9
表B:
SELECT * FROM tableB order by Time desc limit 10;
2016-08-26 12:56:03 30.1
2016-08-26 12:50:10 29.9
2016-08-26 12:45:02 29.8
2016-08-26 12:42:05 30.1
2016-08-26 12:35:04 30.1
2016-08-26 12:31:03 30
2016-08-26 12:25:11 30
2016-08-26 12:20:01 29.6
2016-08-26 12:17:01 29.6
2016-08-26 12:10:02 29.5
如您所见,时间值不相等。我想从两个表中获取值,对它们进行分组并绘制图表。图表不是问题。例如,我希望每5分钟为每个表取一个值。
任何帮助都将不胜感激
谢谢
西蒙分组为5分钟(300秒)。如果多个值落在一个区间内,则取最大值
select from_unixtime(U*300) as date,
max(if(T='A',val,NULL)) as A_VAL,
max(if(T='B',val,NULL)) as B_VAL
from (
select ceil(unix_timestamp(date)/300) as U, val, 'A' as T
from tableA
WHERE date BETWEEN '2016-08-26 12:20:00' AND '2016-08-26 12:55:00'
union all
select ceil(unix_timestamp(date)/300) as U, val, 'B' as T
from tableB
WHERE date BETWEEN '2016-08-26 12:20:00' AND '2016-08-26 12:55:00'
) A
group by U
order by U
结果:
2016-08-26 12:15:00 NULL 29.5
2016-08-26 12:20:00 26.900 29.6
2016-08-26 12:25:00 27.200 29.6
2016-08-26 12:30:00 27.100 30.0
2016-08-26 12:35:00 27.000 30.0
2016-08-26 12:40:00 26.500 30.1
2016-08-26 12:45:00 26.800 30.1
2016-08-26 12:50:00 26.900 29.8
2016-08-26 12:55:00 27.000 29.9
2016-08-26 13:00:00 NULL 30.1
两个表中的时间条目是否相同?请显示所需的查询结果。如果时间值必须组合得多近,那么输出应该提供给具有双轴值的Google图表,如下所示:(参见双Y图表)。所以输出应该是我将要翻译的东西:datetime,valuefromA,valuefromB,所以我可能需要将datetime四舍五入到组中。。。。这个例子中的值是相似的,但是我需要一个包含不同值的图形,所以我需要双X轴。表是一样的。谢谢谢洛麦克!结果近乎完美。您能否建议我如何设置时间范围,即“2016-08-26 12:20:00和2016-08-26 12:55:00之间的时间”。如果我试图指定它,我得到了一个空结果。@Simon现在在外部查询中没有合适格式的datetime。只有秒/300保持在那里。最佳决策(最快的查询速度)-指定读取任何表的日期条件。我更新了答案以反映这一点