MySQL COUNT() посчитать для каждого товара количество отзывов с конкретным статусом
Есть таблица с товарами products(id,title,...)
и есть таблица с отзывами к товарам reviews(id,product_id,status_id,...)
, надо посчитать для каждого товара количество отзывов со статусом 2(опубликован) ОДНИМ ЗАПРОСОМ.
Пытался так:
SELECT COUNT(reviews.product_id) AS count, products.*
FROM reviews
RIGHT JOIN products ON products.id = reviews.product_id
GROUP BY products.id
выводит количество всех имеющихся комментариев (надо со статусом 2) для каждого товара
SELECT COUNT(reviews.product_id) AS count, products.*
FROM reviews
RIGHT JOIN products ON products.id = reviews.product_id
WHERE reviews.status_id = 2 GROUP BY products.id
добавив WHERE reviews.status_id = 2
, выводятся только те товары, у которых есть хотя бы один опубликованный отзыв, а надо чтобы все товары попали в этот запрос.
Можно конечно при добавлении товара сразу добавлять к нему 1 опубликованный отзыв, но хотелось бы более адекватный способ