我有像imdb这样的网站,我们提供电影信息sin网站..我们的网站可以选择为每个用户评价所有电影。
我有两张桌子
1。 imdb(用于商店电影详情)
ID,名称,演员,投
2.评级(其商店用户评级详情)id,rating_id(与第一张表中的id相同),rating_num,IP
现在正在做什么......当评论电影的任何人通过使用评级表(总评级/评级数)获取该电影评级的平均值,并将该值插入第一个表中的“投票”列。我的要求这就是为什么这样做..
现在我的问题是..我想要获取最受好评的电影..我的意思是在投票栏中哪部电影有最高评级想要列出,还有一个条件是该电影应该由10个用户评分(使用评级表为那)
提前致谢
答案 0 :(得分:1)
我不太明白你的表是如何组织的。是否有A)客户在评级表中给出的每个评级的新行或B)每部电影只有1行更新?
我猜是A和rating_num是客户给出的评级。
在这种情况下,简单的MySql解决方案可以使用COUNT和AVG等聚合函数。未经测试的例子。
编辑 - 要从imdb表中获取详细信息,您只需要加入它们。
SELECT id as 'ID', COUNT(1) as 'Number of ratings', AVG(r.rating_num) as 'Average rating', i.name, i.actors, i.vote
FROM ratings r
INNER JOIN imbd i ON ( r.id = i.id )
GROUP BY r.id
HAVING `Number of ratings` >= 10
ORDER BY `Average rating` desc
LIMIT 10