我正在使用mysql
有两个表
表决
app_id user_id
2 1
3 1
2 2
应用
id title content
1 xx xxxx
2 yy yyyy
3 zz zzzz
我想按用户投票的次数对app表进行排序。在这个例子中,结果应该是
id title content
2 yy yyyy
3 zz zzzz
1 xx xxxx
任何建议?
答案 0 :(得分:3)
select app.id, app.title, count(*) as votes
from app
left join vote on app.id = vote.app_id
group by app.id, app.title
order by votes desc
当你不想在输出中有投票数时,你也可以这样做(在sql server中它是可能的,所以我相信它应该可以在mySql中,但我还没有测试过因为我这里没有MySQL。)
select app.id, app.title
from app
left join vote on app.id = vote.app_id
group by app.id, app.title
order by count(*) desc
答案 1 :(得分:2)
对来自app表的数据进行分组以获得投票数,并使用投票表上的左连接来获取没有投票的应用程序:
select app.id, app.title, app.content
from app
left join vote on vote.app_id = app.id
group by app.id, app.title, app.content
order by count(vote.app_id) desc