Kostyab
Новичок
Снова вопрос про запрос с рейтингом
Нашел несколько подобных обсуждений, но применить к моему случаю не получилось.
Есть две таблицы:
таблица gallery
---------------------------------------------------------------------
gallery_id | foto_name | foto_post_date | foto_ocenka
где foto_ocenka -- сумма всех оценок, поставленными всеми посетителями.
таблица rating
-----------------------------------
gallery_id | user_id | rating
где rating -- оценка (от 1 до 5), поставленная пользователем user_id
Задача:
- найти последнее лучшее фото,
- где foto_ocenka максимальна и при этом более 20,
- где средняя оценка более 3
Селект пишу так:
Получаю последнее фото с mx > 20. При этом в базе есть предыдущее фото c mx 40 -- вот его я хочу получить как последнее лучшее фото. То есть максимум не вычисляет.
Где косяк?
Нашел несколько подобных обсуждений, но применить к моему случаю не получилось.
Есть две таблицы:
таблица gallery
---------------------------------------------------------------------
gallery_id | foto_name | foto_post_date | foto_ocenka
где foto_ocenka -- сумма всех оценок, поставленными всеми посетителями.
таблица rating
-----------------------------------
gallery_id | user_id | rating
где rating -- оценка (от 1 до 5), поставленная пользователем user_id
Задача:
- найти последнее лучшее фото,
- где foto_ocenka максимальна и при этом более 20,
- где средняя оценка более 3
Селект пишу так:
PHP:
$result=mysql_query("SELECT g.gallery_id, g.foto_name, g.foto_post_date, MAX(g.foto_ocenka) as mx, ROUND(AVG(r.rating),2) as rt
FROM gallery g, rating r
WHERE g.gallery_id=r.gallery_id
GROUP BY g.gallery_id
HAVING mx>20 AND rt>3
ORDER BY g.foto_post_date DESC
LIMIT 1");
Где косяк?