[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получаем рейтинг для нескольких файлов
NitroGenerate
Доброго времени суток.
Пишу рейтинг для своего сайта.
На одной странице у меня отображается 50 новостей разом.
В бд запросами "срать" не хочется.
Пытаюсь все реализовать одним запросом. Пока не выходит.

Дошел до такого запроса и встал. В поисковиках на эту тему ничего не нашел, может быть не в той стороне искал.

Мой запрос:
SELECT 
*
FROM
( # открываем подзапрос для того, что бы после конечной группировки видеть, голосовал ли пользователь в за эту новость или нет
SELECT
*,
IF(`ip` = '192.168.1.1', `ip`, 0) as UserIP # добовляем дополнительное поле, которое при нужном нам ip будет заполненено, во всех остальных случаях будет = 0
FROM
`news`
WHERE
`id` IN (14,15,17,18,26) # важно находить среднее арифметическое для нескольких новостей сразу
ORDER BY `UserIP` DESC # UserIP всегда вверху (для группировки)
)
AS rating

GROUP BY
`id` # Группируем, что бы на каждую новость было по одной строчке
;


И теперь я ума не приложу как сюда впендорить функцию avg(), если я ее ставлю, она считается по всем новостям, а мне нужно для каждой новости свою avg()
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.