使用MySQL按视图排序
我喜欢MySQL,在过去两年中我一直在使用它。但是现在我被卡住了 我有三张桌子使用MySQL按视图排序,mysql,views,popularity,Mysql,Views,Popularity,我喜欢MySQL,在过去两年中我一直在使用它。但是现在我被卡住了 我有三张桌子 Files --------- id | name | views | folder_id 1 | car | 274 | 1 2 | bike | 100 | 1 3 | train | 120 | 2 Folders --------- id | name | storage_id 1 | folder1 | 1 2 | folder2 | 2
Files
---------
id | name | views | folder_id
1 | car | 274 | 1
2 | bike | 100 | 1
3 | train | 120 | 2
Folders
---------
id | name | storage_id
1 | folder1 | 1
2 | folder2 | 2
Storage
---------
id | name
1 | storage1
2 | storage2
3 | storage3
我想做一个mysql查询,这样存储的表就按照存储中每个文件夹中所有文件的总视图数排序
我的第一种方法是按文件夹id添加每个文件分组的总视图,但是,如何将该值传递到文件夹表,然后对存储表进行排序
很抱歉我解释得不好。我还是个笨蛋
其思想是根据文件的总视图量对数据存储的表进行排序
提前感谢加入表格,按
存储分组
并按文件视图总数排序:
SELECT Storage.*
FROM Storage
LEFT JOIN Folders ON Folders.storage_id = Storage.id
LEFT JOIN Files ON Files.folder_id = Folders.id
GROUP BY Storage.id
ORDER BY SUM(Files.views) DESC
请在上查看。一个与eggyal稍有不同的查询,它也会显示总数,以防您需要它
SELECT Storage.name, SUM(Files.views) AS total_views FROM Storage
LEFT JOIN Folders ON Folders.storage_id = Storage.id
LEFT JOIN Files ON Files.folder_id = Folders.id
GROUP BY Storage.name
ORDER BY total_views DESC
谢谢D那太棒了!