MySQL在共享主机上无效使用组功能

时间:2010-09-16 08:43:17

标签: mysql group-by mysql-error-1111

我需要了解某个城市中比赛次数最多的球队。

SELECT COUNT(am_matches.team_id) AS matches_count,
am_matches.team_id AS team_id
FROM am_matches
LEFT JOIN am_team ON (am_matches.team_id = am_teams.id)
WHERE am_matches.status = '3' AND am_teams.city_id = '$city_id'
GROUP BY am_matches.team_id
ORDER BY COUNT(am_matches.team_id) DESC LIMIT 1

这适用于本地服务器(wamp),但在共享主机上会抛出“无效使用组功能”。还有另一种方法吗?我需要做很多类似的查询,所以我想知道一个更可读的方法来获得类似的值。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以按照评论所说的“1”排序,或者您可以使用列别名“matches_count”。为了清晰和可读性,最好并期望使用别名而不是数字索引。您只能在HAVING子句中重新调用分组函数,而不是在ORDER中。当ORDER看到您的结果时,数据全部汇编并且只是排序。

ORDER BY matches_count DESC LIMIT 1