2016-12-27 2 views
0

У меня есть следующий sql-запрос, который я нашел в Интернете, если он работал правильно, это было бы прекрасно, но оно не придерживается предложения where.Где не соблюдается условие

SELECT * 
FROM Chicken AS a, 
    (SELECT MIN(Temp) AS mini, MAX(Temp) AS maxi 
     FROM Chicken 
    ) AS m 
WHERE m.maxi = a.Temp AND `Location` = "Outside" OR m.mini = a.Temp AND `Location` = "Outside" 
ORDER BY `a`.`Time` DESC Limit 1 

Что происходит, это то, что он принимает самую низкую и самую высокую температуру независимо от местоположения. Мне нужно, чтобы найти самую низкую и самую высокую температуру для местоположения «Вне».

Может ли кто-нибудь помочь?

+0

Итак, поставьте предложение 'WHERE' в подзапрос. –

+3

Не смешивайте 'AND' и' OR' без круглых скобок. – aynber

+0

Можете ли вы предоставить некоторые примеры данных и результат, который вы пытаетесь достичь (и как это отличается от результата, который вы действительно получаете с этим запросом)? – Mureinik

ответ

0
SELECT * 
FROM Chicken AS a, 
    (SELECT MIN(Temp) AS mini, MAX(Temp) AS maxi 
     FROM Chicken 
    ) AS m 
WHERE (m.maxi = a.Temp AND `Location` = "Outside") OR (m.mini = a.Temp AND `Location` = "Outside") 
ORDER BY `a`.`Time` DESC Limit 1 

Это может быть его работа для вас.

+0

Спасибо, но у той же проблемы, что и исходный запрос, он выбирает самую низкую и самую высокую температуру независимо от местоположения. –

Смежные вопросы