Неоднозначное имя столбца, объединяющее три таблицы - PullRequest
0 голосов
/ 25 декабря 2018

Я использую «Браузер БД для 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 голосов
/ 25 декабря 2018

Благодаря залипающему биту я изменил свой запрос на:

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

Что, похоже, и помогает.

Я решил разделить его на два запроса, один для Hot и одинкруто, так как объединение их сейчас выше моего уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...