簡體   English   中英

從兩個表中獲取電影列表和評級MySQL LEFT JOIN

[英]Getting movie lists and rating from two tables MySQL LEFT JOIN

我有桌子

電影

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;

您需要添加GROUP BY m.movi​​e_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`;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM