首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何构造一个DB /构建一个查询,在这个查询中,我根据与它‘交互’的朋友的数量对帖子进行排序。

问我应该如何构造一个DB /构建一个查询,在这个查询中,我根据与它‘交互’的朋友的数量对帖子进行排序。
EN

Stack Overflow用户
提问于 2012-01-31 14:38:29
回答 1查看 50关注 0票数 0

我想在Rails 3.2 (MYSQL)中构建一个查询,在这里,我根据与其交互的朋友的数量对一组帖子进行排序。我可以限制这件事持续7天。我目前的想法是:

Interactors

  • ____
  1. 维护以下表/关系:用户有很多朋友,Post有很多
  2. :)我不太确定如何最有效地构建查询。也许,天真的Id‘认为我会首先查询,以获得用户的朋友..把它放进数组..。然后查询交互参与者(持续7天),其中user_id在“我的朋友”列表中。在这个查询中,懒惰也加载文章。然后在前端计算每个帖子的交互参与者的数量。把它贴在柱子上..。然后把它们分类?一定是一种更有效的方法..

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 14:52:30

假设有一个Friend表包含UserID和FriendID,而PostInteraction表包含PostID和UserID,那么您可以:

代码语言:javascript
复制
select pi.PostID, count(distinct f.FriendID) as Count
from PostInteraction pi
inner join Friend f on pi.UserID = f.FriendID
where f.UserID = @MyUserID
group by pi.PostID
order by count(distinct f.FriendID) desc

我假设同一个朋友可以与一个帖子进行多个交互,并且您只想计数一次,因此在计数中使用DISTINCT。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9081344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档