orderBy相关表的总和

时间:2014-01-21 11:34:22

标签: laravel laravel-4

如果我有一个帖子类型帖子,其中有很多投票,看起来像这样:

post:   [id, title, content]
votes:  [my_vote, post_id, user_id]

其中my_vote可以说是-1,0或1.

如何列出my_vote总和所订购的所有帖子?我是否可以用雄辩的方式做到这一点,还是我必须能够流利地使用JOINS?我想做点什么

->orderBy(sum("votes-for-the-idea"))

此外,我仍然需要访问个人投票(特别是当前用户的投票)。

1 个答案:

答案 0 :(得分:0)

select post.*,
sum(votes.my_vote) as vote_num,
count(distinct votes.user_id) as user_vote_num
from post 
left join votes 
on post.id = votes.post_id 
group by post.id 
order by vote_num desc