Код: Выделить всё
$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");
Модератор: terminus
Код: Выделить всё
$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");
Запрос выполняется, ошибку не выдает (если вывести на экран mysql_error()). Но в конечном результирующем списке отсутствуют некоторые статьи (в том числе и та, что явно должна быть на первом месте, т.е. максимальный рейтинг + за нее больше всего проголосовало и т.д.). Судя по этому списку для некоторых категорий неправильно определяется лучшая статья.lissyara писал(а):либо структуру таблицы показывай, либо ошибку которую выдаёт...
сколько тебе статей нужно - 10 лучших всего? или 10 в каждой категории?Этим запросом я хочу для каждой категории статей (id_category), используя формулу, определить лучшую, а потом вывести лучшую десятку в соответствующем порядке. Подскажите, плиз, как решить мою задачу.
Это не ошибка СУБД, это запрос такое творит. Разберите запрос сами по порядку.IDA писал(а):Причем заметил, что мой запрос для каждой категории выдает самую старую статью и просто подставляет ей лучший для категории koeff. Как такое может быть?