php - 从两个表中获取电影列表和评级 MySQL LEFT JOIN

标签 php mysql join left-join

我有一张 table

电影

movie_id
movie_name
language
cast 

评分

id
movie_id
rating
comment

我需要获取所有电影的详细信息以及平均评分和总评分。

如果任何电影都没有评分,则平均评分和总评分计数必须为零。

为此我尝试了这个 MySQL 查询:

SELECT m.movie_id,movie_name,cast,language,AVG(rating) as average_rating,COUNT(rating) as total_rating 
FROM movies m 
LEFT JOIN ratings r ON m.movie_id=r.movie_id;

但此查询并未提供“电影”表中的所有电影列表。

请帮忙。谢谢。

最佳答案

group bymovie_id 结合使用,这样它会用唯一的 movie_id 区分您的结果。

SELECT m.movie_id,m.movie_name,m.cast,m.language,AVG(r.rating) as average_rating,COUNT(r.rating) as total_rating 
FROM movies m 
LEFT JOIN ratings r ON m.movie_id=r.movie_id
GROUP BY m.movie_id;

关于php - 从两个表中获取电影列表和评级 MySQL LEFT JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40763296/

相关文章:

php - 为什么 R::Store 不返回任何东西并在 redbeanphp 中崩溃?

php - 在laravel中计算购物车的总重量

mysql - 如何按一列分组但选择最后一个值

mysql - 从两个表中有两个外键的多对多关系表中选择行

mysql - 在旧版本的mysql中,我们可以使用WITH语句的替代方案是什么?

php - 循环更新sql中的多行

javascript - php生成的html onclick变量不起作用

php - MySQL转义特殊字符

mysql - 授予对 MySQL 的权限

mysql - 哪个更好 : calling procedure inside a procedure or executing sql inside a procedure?