我正在使用“用于SQLite的数据库浏览器”来测试我的SQL查询,但出现错误:
模糊的列名:Devices.Label
我想从每台设备获取最新时间戳的结果,例如:
Hot | 1545074701 | 25.8
Hot | 1545071101 | 23.2
Cool | 1545071101 | 24.0
我的查询如下:
SELECT Devices.Label, max(Humidity.Timestamp), Humidity.H, max(Temperature.Timestamp), Temperature.C
FROM Temperature, Humidity
INNER JOIN Devices ON Temperature.DeviceID = Devices.DeviceID
INNER JOIN Devices ON Humidity.DeviceID = Devices.DeviceID;
我想念什么?我没有指定要从哪个表获取信息吗? 当然,下一步将是从查询中获取正确的结果,然后将其作为JSON对象发送到Android应用程序。
答案 0 :(得分:0)
由于粘性,我将查询更改为:
SELECT
DevHum.Label, MAX(Humidity.Timestamp), Humidity.H, Temperature.C
FROM
Temperature, Humidity
INNER JOIN
Devices AS DevTemp ON Temperature.DeviceID = DevTemp.DeviceID
INNER JOIN
Devices AS DevHum ON Humidity.DeviceID = DevHum.DeviceID;`
似乎可以解决问题的
我决定将其分为两个查询,一个查询为“热”查询,另一个查询为“酷”,因为现在合并它们已经超过了我的水平。