Есть первая база со статьями и вторая с дополнительными данными (Статистика, теги и т д).
Я делаю вывод по рейтингу и появилась проблема с оптимизацией запроса (Не знаю даже как загуглить).
Как сделать так, чтобы не делать доп запросы для rating и rating_count и вывести их из запроса postmeta и использовать для подсчета и сортировки?
SELECT * ,
//Тут я вычисляю сам рейтинг для сортировки и как эти данные взять без доп запросов?
(sum(rating.meta_value*rating_count.meta_value)/sum(rating_count.meta_value)) AS rating_sum)
FROM posts
//В этом запросе по сути есть данные все, которые нужны
INNER JOIN postmeta ON (posts.ID = postmeta.post_id)
//Но приходится делать еще один запрос, чтобы получить значение рейтинга
INNER JOIN postmeta AS rating
ON ( posts.ID = rating.post_id )
//Здесь запрос на количество поставленных оценок
INNER JOIN postmeta AS rating_count
ON ( posts.ID = rating_count.post_id )
WHERE
//Тут небольшой критерий и по сути поиск значений по ключу
(rating.meta_key = 'post_rating' AND rating.meta_value >= 2) AND
(rating_count.meta_key = 'post_rating_count' AND rating_count.meta_value > 1)
В postmeta сохраняются данные post_id - Ид статьи, meta_key - Ключ параметра, meta_value - Значение параметра.