MySQL where 子句和 avg() 排序作为子查询

2024-03-05

尽管我可以对别名子查询进行分组和排序,但我无法在 where 子句中使用别名。我需要使用联接吗?

Works:

SELECT entries.*, 
    (SELECT avg(value) 
    FROM `ratings`
    WHERE ratings.entry_id = entries.id) as avg_rating
FROM `entries` 
ORDER BY avg_rating DESC

失败(“where 子句中的未知列‘avg_ rating’”):

SELECT entries.*, 
    (SELECT avg(value) 
    FROM `ratings` 
    WHERE ratings.entry_id = entries.id) as avg_rating 
FROM `entries` 
WHERE avg_rating < '4.5000' ORDER BY avg_rating DESC

您可以使用 HAVING 子句而不是 WHERE 来执行此操作

Syntax http://dev.mysql.com/doc/refman/5.1/en/select.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL where 子句和 avg() 排序作为子查询 的相关文章

随机推荐