mysql - 我该怎么做这个 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
请问你有什么想法吗?
解决方案
所以你会加入收藏夹表和电影表和流派表,然后你可以根据电影流派找到用户数,下面是那个查询
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;
推荐阅读
- sql - Oracle查询以查找帐户是否已连续几天为负
- python - 在 python 中读取和写入 unicode/非 ascii 字符到文件时遇到问题
- matplotlib - 从 jupyter notebook 打开 PyQt5 保存文件对话框以保存 matplotlib 图
- python - 使用 python 请求发布文件和表单字段
- json - 在 Hive 中创建表时未检测到 JSON SerDe JAR
- html - 为 Web 提供缩放图像
- java - Java 11 中的类注解和类加载器
- python - 如何在 Django 中添加分享按钮以分享帖子
- blazor - Blazor.NET:是什么导致 JavaScript 中的“任务被取消”
- bitcoin - 如何通过本地网络将一个比特币节点连接到一个完整的节点?