我有一个表
电影
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;
但是,此查询不提供"电影"表中的所有电影列表。
请帮忙。谢谢。
与movie_id
一起使用group by
,因此它将通过唯一的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;
您需要添加m.movie_id
的组SELECT
`m`.`movie_id`, `m`.`movie_name`, `m`.`cast`, `m`.`language`,
AVG(`r`.`rating`) `average_rating`, COUNT(`r`.`rating`) `total_rating`
FROM
`movies` `m`
LEFT JOIN
`ratings` `r`
ON
`m`.`movie_id` = `r`.`movie_id`
GROUP BY
`m`.`movie_id`;