Сортировать товары по количеству отзывов - PullRequest
1 голос
/ 09 мая 2011

У меня есть база данных mysql с

  • таблица 'product', содержащая столбцы 'product_id', 'name', 'price'
  • таблица 'review', содержащая столбцы 'review_id', 'product_id', 'review_content'

Я хочу получить результаты для 'product_id' = 123, но отсортировать по количеству отзывов.Я могу найти количество отзывов для определенного продукта с помощью COUNT ('review_id'), но как отсортировать результаты по количеству отзывов?

Ответы [ 4 ]

2 голосов
/ 09 мая 2011

Поскольку вы, вероятно, выбираете COUNT('review_id') в своем запросе, вы можете просто добавить ORDER BY COUNT('review_id') DESC в конце.

1 голос
/ 09 мая 2011

Если вы хотите продукты с наибольшим количеством отзывов, сначала ...

SELECT P.product_id, 
       IFNULL(COUNT(R.product_ID),0) as "Reviews"
FROM product as P
LEFT JOIN review as R ON P.product_ID = R.product_id
GROUP BY P.product_id
ORDER BY Review DESC;

... в противном случае переключите DESC с ASC.

1 голос
/ 09 мая 2011

Чтобы сохранить счет дважды, используйте: count('review_id') as num_reviews, а затем order by num_reviews

1 голос
/ 09 мая 2011

Попробуйте, чтобы получить все продукты и количество отзывов на каждый:

SELECT P.*, IFNULL(COUNT(R.product_ID),0) AS NumReviews
FROM Product AS P
LEFT JOIN Review AS R ON R.product_id = p.product_id
ORDER BY  COUNT(R.product_ID) DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...