我有4个表,分别是商店(shops)、用户(users)、评论(review)和评分(rating)。
我想要获取对应商店的所有评论,包括评论用户的详细信息以及该商店的总体评分。
我已经几乎用单个查询完成了。但问题在于,如果同一用户对同一商店进行多次相同的评分,则被视为单个评分。但评分计数是正确的。
当我运行这个查询时,我得到了:
我想要获取对应商店的所有评论,包括评论用户的详细信息以及该商店的总体评分。
我已经几乎用单个查询完成了。但问题在于,如果同一用户对同一商店进行多次相同的评分,则被视为单个评分。但评分计数是正确的。
i.e
从这张表中可以看出,用户ID为3的用户对商店ID为1的商店进行了4次评分。因此,评分总数为4,总评分为17。
我的查询是
select review.comments, users.username, count(distinct rating.id) as rating_count,
sum(distinct rating.rating) as total_rating from users
left join review on users.id = review.user_id and review.shop_id='1'
left join rating on users.id = rating.user_id and rating.shop_id='1'
where review.shop_id='1' or rating.shop_id='1'
group by users.id, review.user_id, rating.user_id, review.id
当我运行这个查询时,我得到了:
但我需要用户ID为3的total_rating值为17。
请查看此fiddle。