【发布时间】:2018-12-28 23:40:21
【问题描述】:
我在 SQLite3 数据库中有三个表。我想要一行的结果(对于 json 字符串)每个 DeviceID 的湿度和温度的最新记录,这意味着两条记录来自温度,一条来自湿度。
三个读数同时插入,因此找到一个MAX(Timestamp),然后寻找具有相同时间戳的其他记录。
结果应该是这样的:
Timestamp H C C
1545732002 50 25 25
到目前为止我能得到的最接近的是:
SELECT max(Humidity.Timestamp), Humidity.H, Temperature.C, CoolTemp.C
FROM Temperature, Humidity
INNER JOIN Devices AS DeviceHum ON Humidity.DeviceID = DeviceHum.DeviceID
INNER JOIN Temperature AS CoolTemp ON Temperature.Timestamp = Humidity.Timestamp`
这给了我来自设备 1 的最新 H 和 C,但不是来自设备 2 的最新 C。这也需要 19 秒才能运行。
我无法理解这一点。
数据库本身 --> logtest.db at file.io 307,2kB
表格如下:
【问题讨论】:
-
您能否将您的示例数据作为一组插入语句或 CSV 或其他微不足道的东西添加到数据库中进行测试而不是图像?
-
我添加了一个下载.db的链接,好吗?