未知列错误Mysql

时间:2017-01-19 10:29:05

标签: mysql

SELECT u.uid,u.status,u.category,u.role, p.uname, p.photo, p.upos, p.city, p.state, p.country, p.services, p.slug, 
(select avg(rating) from rating where uid=u.uid) as rating 
FROM `hd-users` u 
JOIN `profile` p ON p.uid=u.uid 
WHERE u.status='1' AND u.role='C' AND rating >= 4

这是我的SQL查询我加入了三个表,在加入时我正在考虑第三个表的平均值。一切正常,但每当我尝试将平均评分值与数字I进行比较时,我会得到错误:未知列'评分'在' where子句'

2 个答案:

答案 0 :(得分:1)

错误是因为这一行:

AND rating >= 4

这里,rating由一个聚合函数生成,你不​​能把where子句放在聚合列名上。

使用喜欢:

having rating >= 4

注意: WHERE在聚合之前过滤记录,HAVING在聚合之后起作用。

答案 1 :(得分:0)

它是p.ratingu.rating。你没有在这里指定你的评分:

WHERE u.status='1' AND u.role='C' AND rating >= 4 // rating here has no alias