列名不明确,连接了三个表

时间:2018-12-25 17:20:15

标签: sqlite join

我正在使用“用于SQLite的数据库浏览器”来测试我的SQL查询,但出现错误:

  

模糊的列名:Devices.Label

我有一个包含三个表的数据库: Devices Humidity Temperature

我想从每台设备获取最新时间戳的结果,例如:

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应用程序。

1 个答案:

答案 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;`

似乎可以解决问题的

我决定将其分为两个查询,一个查询为“热”查询,另一个查询为“酷”,因为现在合并它们已经超过了我的水平。