Дмитрий_пхп
Новичок
Помогите разобраться с MAX, GROUP BY, HAVING...
Я хочу для каждой категории статей (id_category), используя формулу, определить лучшую, а потом вывести лучшую десятку в соответствующем порядке. Подскажите, плиз, как решить мою задачу. Делаю так:
$rating = mysql_query("SELECT *, MAX(rating*voices*1000+hits) AS koeff
FROM articles WHERE old_mess = 'old'
GROUP BY id_category
HAVING MAX(koeff)
ORDER BY rating DESC, voices DESC, hits DESC LIMIT 10");
Но, если делать так, то в конечном результирующем списке отсутствуют некоторые статьи (в том числе и та, что явно должна быть на первом месте, т.е. максимальный рейтинг + за нее больше всего проголосовало и т.д.). Судя по этому списку для некоторых категорий неправильно определяется лучшая статья.
В чем моя ошибка?
Я хочу для каждой категории статей (id_category), используя формулу, определить лучшую, а потом вывести лучшую десятку в соответствующем порядке. Подскажите, плиз, как решить мою задачу. Делаю так:
$rating = mysql_query("SELECT *, MAX(rating*voices*1000+hits) AS koeff
FROM articles WHERE old_mess = 'old'
GROUP BY id_category
HAVING MAX(koeff)
ORDER BY rating DESC, voices DESC, hits DESC LIMIT 10");
Но, если делать так, то в конечном результирующем списке отсутствуют некоторые статьи (в том числе и та, что явно должна быть на первом месте, т.е. максимальный рейтинг + за нее больше всего проголосовало и т.д.). Судя по этому списку для некоторых категорий неправильно определяется лучшая статья.
В чем моя ошибка?