私には独特の問題があります。与えられた 3 つのテーブル。
製品 - ID - 題名 product_rating - 製品番号 - 評価 商品を見る - 製品番号
評価 (+1 または -1 のいずれかの値) と合計製品数の合計で製品を取得したいと考えています。
SELECT
p.`id`, p.`title`,
SUM( pr.`rating` ) AS rating,
COUNT( pv.`product_id` ) AS views
FROM
`product` AS p
LEFT JOIN `product_rating` AS pr ON ( pr.`product_id` = p.`id` )
LEFT JOIN `product_view` AS pv ON ( pv.`product_id` = p.`id` )
GROUP BY
p.`id`
ORDER BY rating DESC
テーブルには、1 つの評価と 9 つのビューがあります。ただし、クエリは 9 件の評価と 9 件のビューを返しています。その理由は理解できますが(product_view ごとの評価を合計している)、回避する方法がわかりません。
どんな提案でも大歓迎です。
サンプルデータ:
製品 ------------ ID | 題名 1 | グロバー product_rating ------------------- 商品ID | 評価 1 | 1 商品を見る ------------ 製品番号 1 1 1 1 1 1 1 1 1