gpt4 book ai didi

mysql - SQL查询合并两个具有不同时间戳的表作为索引

转载 作者:行者123 更新时间:2023-11-29 02:56:27 25 4
gpt4 key购买 nike

我不确定我的问题是否适用于 sql 查询。

我有以下两个 Mysql 表:

表一:该表每 20 秒获取一个新值

a.Time                  a.Value
2015-05-14 07:36:36 49
2015-05-14 07:36:56 49
2015-05-14 07:37:16 49
2015-05-14 07:37:36 49
2015-05-14 07:37:56 50
2015-05-14 07:38:16 50
2015-05-14 07:38:36 50
2015-05-14 07:38:56 49
2015-05-14 07:39:16 49
2015-05-14 07:39:36 49
2015-05-14 07:39:56 49
2015-05-14 07:40:16 50
2015-05-14 07:40:36 50
2015-05-14 07:40:56 50
2015-05-14 07:41:16 49
2015-05-14 07:41:36 49
2015-05-14 07:41:56 50
2015-05-14 07:42:16 50
2015-05-14 07:42:36 49
2015-05-14 07:42:56 49
2015-05-14 07:43:16 49
2015-05-14 07:43:36 49
2015-05-14 07:43:56 49
2015-05-14 07:44:06 49

表b该表获取值的每个变化一条新记录

b.Time              b.Value
2015-05-14 07:34:50 1500
2015-05-14 07:38:52 2000
2015-05-14 07:40:52 0
2015-05-14 07:42:31 1500

结果应该如下所示

a.Time                  a.Value     b.Time              b.Value
2015-05-14 07:36:36 49 2015-05-14 07:34:50 1500
2015-05-14 07:36:56 49 2015-05-14 07:34:50 1500
2015-05-14 07:37:16 49 2015-05-14 07:34:50 1500
2015-05-14 07:37:36 49 2015-05-14 07:34:50 1500
2015-05-14 07:37:56 50 2015-05-14 07:34:50 1500
2015-05-14 07:38:16 50 2015-05-14 07:34:50 1500
2015-05-14 07:38:36 50 2015-05-14 07:34:50 1500
2015-05-14 07:38:56 49 2015-05-14 07:38:52 2000
2015-05-14 07:39:16 49 2015-05-14 07:38:52 2000
2015-05-14 07:39:36 49 2015-05-14 07:38:52 2000
2015-05-14 07:39:56 49 2015-05-14 07:38:52 2000
2015-05-14 07:40:16 50 2015-05-14 07:38:52 2000
2015-05-14 07:40:36 50 2015-05-14 07:38:52 2000
2015-05-14 07:40:56 50 2015-05-14 07:40:52 0
2015-05-14 07:41:16 49 2015-05-14 07:40:52 0
2015-05-14 07:41:36 49 2015-05-14 07:40:52 0
2015-05-14 07:41:56 50 2015-05-14 07:40:52 0
2015-05-14 07:42:16 50 2015-05-14 07:40:52 0
2015-05-14 07:42:36 49 2015-05-14 07:42:31 1500
2015-05-14 07:42:56 49 2015-05-14 07:42:31 1500
2015-05-14 07:43:16 49 2015-05-14 07:42:31 1500
2015-05-14 07:43:36 49 2015-05-14 07:42:31 1500
2015-05-14 07:43:56 49 2015-05-14 07:42:31 1500
2015-05-14 07:44:06 49 2015-05-14 07:42:31 1500

表a中的时间戳应该是表b中的下一个更小的时间戳!

知道查询应该是什么样子吗?

非常感谢!

最佳答案

使用按 TIMELIMIT 1 排序的子查询从 B 获取一条时间小于当前 A 的顶级记录。时间:

SELECT 
a.Time,
a.Value,
(SELECT Time FROM B WHERE B.Time<=A.Time ORDER BY B.Time DESC LIMIT 1)
as B_Time,
(SELECT Value FROM B WHERE B.Time<=A.Time ORDER BY B.Time DESC LIMIT 1)
as B_Value
FROM A
ORDER BY A.Time

关于mysql - SQL查询合并两个具有不同时间戳的表作为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30230632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com