我在这个伟大的社区中阅读了多个主题,但不知何故我无法解决我的问题。
我有两张桌子:
表 A。
id timestamp value
1 2018-03-30 00:01:00 100
2 2018-03-30 00:02:02 200
3 2018-03-30 00:03:01 300
4 2018-03-30 00:03:59 400
5 2018-03-30 00:05:00 500
6 2018-03-30 00:06:07 600
7 2018-03-30 00:06:54 700
8 2018-03-30 00:08:00 800
表 B:
id timestamp value
1 2018-03-30 00:00:59 10
2 2018-03-30 00:01:12 20
3 2018-03-30 00:01:20 30
4 2018-03-30 00:01:25 40
5 2018-03-30 00:01:40 50
6 2018-03-30 00:02:01 60
7 2018-03-30 00:02:05 70
8 2018-03-30 00:02:09 80
我正在尝试创建一个语句来加入我的表。并用这些值计算。
目标表:
timestamp a.value b.value diff
2018-03-30 00:01:00 100 10 90
2018-03-30 00:02:02 200 60 140
对我来说,callenge 是获得最近的时间值来进行加入。
当前方法,基于此处的另一个步骤:
SELECT
a.`id`,
a.`timestamp`,
(SELECT b.`timestamp`
FROM `databaseB`.`tableB` as b
where b.`channel_id`=10
order by abs(datediff(a.`timestamp`, b.`datetime`)) asc Limit 1) AS newtime,
a.value,
FROM `databaseA`.`tableA` as a;
但结果我在 newtime 列中只收到一个静态值。它是一个时间戳,但它不是创建连接的正确时间戳。
你们中有人能看出我的错误吗?我究竟做错了什么。
Thx 和 KR 霍尔格