0

特定の都市で試合数が最も多いチームを知りたいです。

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) では機能しますが、共有ホストでは「グループ機能の無効な使用」がスローされます。これを取得する別の方法はありますか?同様のクエリをたくさん作成する必要があるため、同様の値を取得するためのより読みやすいアプローチを知りたいです。ありがとう。

4

1 に答える 1

0

コメントにあるように「1」で注文するか、列エイリアス「matches_count」を使用できます。明確さと読みやすさのために、数値インデックスではなくエイリアスを使用することをお勧めします。ORDER ではなく、HAVING 句でのみグループ化関数を再呼び出しします。ORDER が結果を確認するまでに、データはすべて組み立てられ、ソートされるだけです。

ORDER BY matches_count DESC LIMIT 1
于 2011-04-29T23:44:52.810 に答える