Вырываю пример из контекста. Помимо этого есть еще критерии отбора, но интересует вопрос по логике вывода по оценкам.
В данном случае у нас 2 переменные количество и среднее число этих оценок.
При выводе есть проблема, например между оценкой (5 из 5 с кол-ом 1) и (4.1 из 5 с кол-ом 30), выведет ту что 5 из 5.
Понятное дело, потому что оно выше стоит в ORDER BY, но как сделать чтобы учитывалось и количество? Ведь 30 оценок популярнее чем 1 оценка, хоть и среднее число отличается.
Не знаю как забить в инете запрос, куда вообще смотреть?
Может как-то использовать
MAX?
SELECT *
FROM posts
//Среднее число
INNER JOIN postmeta AS rating
ON ( posts.ID = rating.post_id )
//Количество оценок
INNER JOIN postmeta AS rating_count
ON ( gikami_posts.ID = rating_count.post_id )
WHERE
(rating.meta_key = 'rating' AND rating.meta_value <> 0) AND
(rating_count.meta_key = 'rating_count' AND rating_count.meta_value <> 0)
GROUP BY posts.ID
ORDER BY
//Вот здесь надо как то изменить
rating.meta_value DESC ,
rating_count.meta_value DESC ,