站内信数据表,如何取出某个用户最近 10 个联系人?

2014-10-23 21:46:02 +08:00
 WildCat

我的站内信的数据表大约有如下字段:

eg. 如何取出 receiver_id = 1 的最近10个 sender_id ?

3530 次点击
所在节点    Ruby on Rails
7 条回复
xenme
2014-10-23 21:50:57 +08:00
不是特别熟悉,大概应该这样:
select * from table where receiver_id=1 order by creted_at desc limit 10
yangqi
2014-10-23 21:51:20 +08:00
SELECT sender_id FROM 表 WHERE receiver_id=1 ORDER BY created_at DESC LIMIT 10;
xenme
2014-10-23 21:52:32 +08:00
可能sender有重复
select distinct sender_id,created_at from table where receiver_id=1 order by creted_at desc limit 10
heaton_nobu
2014-10-23 21:59:45 +08:00
我只想问问为什么不用主键id,而非要用created_at,难道不是新建的id就大吗
WildCat
2014-10-23 23:00:26 +08:00
@xenme 感谢。已经找到:

http://guides.rubyonrails.org/active_record_querying.html
```ruby
query = Client.select(:name).distinct
# => Returns unique names

query.distinct(false)
# => Returns all names, even if there are duplicates
```

结贴。
staticor
2014-10-23 23:10:45 +08:00
用groupby 之类的对sender_id 去个重?
msg7086
2014-10-24 09:52:42 +08:00
where.distinct.first 10

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141106

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX