有人能解释一下为什么我不能在AS变量上使用WHERE子句吗
如果我在同一个地方做WHERE a.n = gameone
这样的事情,它会起作用。
我可以不对像AVG(b.r) AS fra
那样创建的var使用WHERE子句吗?
如果可以的话。我怎么能?
SELECT
a.id, a.n, a.t, a.d,
AVG(b.r) AS fra, COUNT(b.id) as tvotes
FROM `games` a
LEFT JOIN `games_ratings` b
ON a.id = b.id
WHERE fra >= 2
GROUP BY a.id
ORDER BY a.ts
DESC LIMIT 0, 50
否,所选的值不在WHERE
的范围内,因为所选的行取决于WHERE
。如果您真的想对它们做一个条件,请使用HAVING
,但请注意HAVING
子句并没有优化。
有关HAVING
的更多信息,请参阅SELECT上的MySQL文档。