Where子句不遵守
问题描述:
我有我在网络上发现,如果它的工作正确那就完美了下面的SQL查询,但它不是秉承where子句。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
发生的事情是,无论位置如何,它都会采用最低和最高温度。我需要它找到“外部”位置的最低和最高温度。
任何人都可以帮忙吗?
答
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'子句中的子查询。 –
不要在没有括号的情况下混合使用AND和OR。 – aynber
您能否提供一些示例数据和您试图实现的结果(以及与实际使用此查询获得的输出有何不同)? – Mureinik