当前位置:  开发笔记 > 编程语言 > 正文

sql-按其他关系计数对查询进行排序

如何解决《sql-按其他关系计数对查询进行排序》经验,为你挑选了1个好方法。

这就是我的桌子。

这样一首歌可以获得更多选票。我想获取所有歌曲,按其获得的票数排序。我怎样才能做到这一点?

示例:歌曲表将是

1,"Master Of Puppets"
2,"Don't Cry"
3,"Baby"
4,"Song name"
5,"I want to break free"

和投票:

1,5
2,5
3,5
4,2
5,2
6,1

我想查询歌曲表以获得投票最多的歌曲,应该按此顺序

5,"I want to break free"
2,"Don't cry"
1,"Master Of Puppets"
3,"Baby"
4,"Song name"

有没有办法仅通过一个查询来执行此操作?我知道我可以查询所有歌曲,然后查询每首歌曲的票表,其中songId是当前歌曲的ID,但是我可以只执行一次查询吗?



1> Pரதீப்..:

使用Count()汇总来计算votes每首歌的数量并在中使用它Order by

Left Outer join用于从song表返回行,即使一首歌从未获得投票

尝试这个

SELECT s.id, 
       s.title 
FROM   song s 
       LEFT OUTER JOIN votes v 
                    ON s.id = v.songid 
GROUP  BY s.id, 
          s.title 
ORDER  BY Count(v.songid) DESC 

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有