【发布时间】:2019-04-16 14:22:18
【问题描述】:
编辑:我可能应该说我试图输入信标数据,其中同一信标的下一个数据输入大于 5 分钟
我有问题将表 1 中的值插入到表 2 中,其中信标匹配的表 1 上的数据输入之间存在较大的时间输入差异。
例如ID 7 和 ID 8 之间的数据输入间隙大于 5 分钟,但下面使用的查询我没有返回任何数据
INSERT INTO table
(`beacon`, `zone`, `mac`, `date`, `time`, `id`)
VALUES
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:21:33","1"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:21:43","2"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:21:53","3"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:22:03","4"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:22:13","5"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:22:32","6"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:22:33","7"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:30:00","8"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:30:33","9"),
("8","GREEN","EE6A6AF29B8E","2018-11-13","16:30:35","10");
返回任何结果的查询我不确定我是否遗漏了一点或只是写错了
select a.beacon, a.zone, a.mac, a.date from table a
join table b
on b.id = (select min(id) from table where id > a.id)
where TIME_TO_SEC(TIMEDIFF(a.time, b.time)) > 300;
我试图将数据从 1 个 mysql 插入到另一个表中,其中表 1 上的数据输入和信标匹配的数据输入到 database.table1 之间的时间大于 5 分钟
例如
"8","GREEN","EE6A6AF29B8E","2018-11-13","16:21:33","1"),
"8","GREEN","EE6A6AF29B8E","2018-11-13","16:22:33","1"),
"8","GREEN","EE6A6AF29B8E","2018-11-13","16:23:33","1"), (Ref 1)
value 8 stopped being inputted into database
"10","GREEN","EE6A6AF29B8E","2018-11-13","16:21:33","1"),
"10","GREEN","EE6A6AF29B8E","2018-11-13","16:22:33","1"),
"10","GREEN","EE6A6AF29B8E","2018-11-13","16:25:33","1"),
value 8 started inputting into database
"8","GREEN","EE6A6AF29B8E","2018-11-13","16:28:33","1"), (Ref 2)
"8","GREEN","EE6A6AF29B8E","2018-11-13","16:28:33","1"),
REF 1 和 REF 2 之间的差异是 5 分钟,因此将值 8 插入数据库
仅比较信标相同的数据(信标为第一列)
因此,即使在参考 2 之前不到 5 分钟有数据输入,因为信标与参考 2 不同,它也不会考虑此字符串。
【问题讨论】:
-
表1和表a一样吗?
-
on 子句中的
id不是模棱两可吗? -
@Strawberry 是的,表 a 是表 1,而nickellis 我没有得到 ID 不明确的错误
-
查询解决了吗?您是要插入数据还是选择数据?更多解释会很方便。
标签: mysql