我有一个MySQL查询像这样:如何在MySQL WHERE子句中使用别名列?
SELECT *, SUM(...some SQL removed for brevety) AS Occurrences FROM some_table AS q
WHERE criterion="value" GROUP BY q.P_id ORDER BY Occurrences DESC LIMIT 10;
我想限制结果行,其中出现次数> 0。这对我来说似乎很简单,但我似乎无法使其工作。无论我尝试什么,WHERE或HAVING,每当我尝试添加这个限制时,我都会得到NO ROWS。我确信我的表中有数据应该返回。有谁知道如何完成我在做的事情?
我试过这个,但它仍然不起作用。任何想法,为什么它仍然无法正常工作?
SELECT *, SUM(...some SQL removed for brevety) AS Occurrences FROM some_table AS q
WHERE criterion="value" HAVING SUM(...some SQL removed for brevety)>0 GROUP BY q.P_id ORDER BY Occurrences DESC LIMIT 10;
啊,那工作。尽管如此,按照别名排序的结果工作良好。 – stalepretzel 2009-01-27 01:20:13
很高兴知道。我已经更新了答案。 – 2009-01-27 01:22:22