这就是我的表格。
所以一首歌可以有更多的选票。 我希望获得所有歌曲,按照它有多少票数排序。 我怎么能这样做?
实施例: 歌曲表将是
<h4 id="test">
<input type="checkbox">
Ready?
</h4>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
和投票:
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
有没有办法只用一个查询来做到这一点? 我知道我可以对所有歌曲进行查询,然后为每首歌曲查询投票表,其中songId是当前歌曲ID,但是我可以只使用一个查询吗?
答案 0 :(得分:4)
使用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
答案 1 :(得分:1)
// Works:
GroupedList.SelectedItem = Groups[0].Items[5]; // = new ValueColor(16);
// Works not:
GroupedList.SelectedItem = new ValueColor(16);
也可以是一种选择。