首页 > 解决方案 > 我该怎么做这个 sql 请求?

问题描述

作为个人项目的一部分,我正在开发类似的 netflix。所以我有一个按类型排序的电影数据库,用户可以喜欢这些电影,以便将它们添加到收藏夹中。
我想做一个查询,它会向我发送收藏夹中电影最多的类型列表。目前,我只能使用此命令按流派显示书签电影的数量。

select count(*), genres.nom
from favoris
left join films on films.ID_film = favoris.ID_film
left join genres on genres.ID_genre = films.ID_genre
group by genres.nom;

这是我的数据库的制作方法: db screenshot

请问你有什么想法吗?

标签: mysqldatabase

解决方案


所以你会加入收藏夹表和电影表和流派表,然后你可以根据电影流派找到用户数,下面是那个查询

SELECT 
    gn.ID_genre,
    gn.nom,
    COUNT(fv.ID_user) AS user_favorite_count
FROM favoris AS fv
    INNER JOIN films AS flm ON fv.ID_film = flm.ID_film 
    INNER JOIN genres AS gn ON gn.ID_genre = flm.ID_genre
GROUP BY gn.ID_genre, gn.nom
ORDER BY COUNT(fv.ID_user) DESC;


推荐阅读