球一条SQL(HQL)排序语句,(oschina的关注排序).

funny-guy 发布于 2012/07/02 18:22
阅读 1K+
收藏 1

按最近更新,关注时间,最近登录排序

关注时间好写,自增的话 直接按ID 排序就可以了.

最近登录可不可以这样写:

SELECT   FROM   friends f  where f.fans.id=<me> ORDER BY f.follows.logintime DESC limit 0,20;

感觉这是要连接三张表啊   用户表,好友表,动态表.

 这个是不是需要拿到我所有的关注对象,然后按登陆时间倒序排列, 再取前20个?

是的话,那如果关注对象很多 那不是要被搞死.

 

还有按最近更新查询怎么做嘞.

加载中
0
红薯
红薯

多年没用 Hibernate 了,忘了 HQL 怎么写

但是 SQL 的话,无非就是两个表的联合查询,然后按照相应字段排序。

最近更新,因为 osc 有一个表用来记录用户动态的,因为这个问题比较简单解决

0
谁瞅谁怀孕
谁瞅谁怀孕
用空间换精确性即可. 这样就不联合查询了呗.
0
谁瞅谁怀孕
谁瞅谁怀孕
还有 osc用类似mongoDB的. 因为我看到osc的{answer:33213, count:1}语法.
0
funny-guy
funny-guy

引用来自“红薯”的答案

多年没用 Hibernate 了,忘了 HQL 怎么写

但是 SQL 的话,无非就是两个表的联合查询,然后按照相应字段排序。

最近更新,因为 osc 有一个表用来记录用户动态的,因为这个问题比较简单解决

谢谢红薯哥回复.
我是这样写的.
select distinct c from Concern c,Feed f where c.follow.id=f.who.id and c.fans.id=<me> order by f.optTime desc;
concern相当于好友表,feed就是用户动态表.
f.who表示动态的产生者.
然后连接查询.得到排序好的好友表.
然后再根据好友表for循环一个个查询他们最近的动态.
然后塞到好友表中传到前台.
这样做对不对啊?
@红薯 
红薯
红薯
对不对你应该试试就知道了:)
0
funny-guy
funny-guy

引用来自“sky-walker”的答案

引用来自“红薯”的答案

多年没用 Hibernate 了,忘了 HQL 怎么写

但是 SQL 的话,无非就是两个表的联合查询,然后按照相应字段排序。

最近更新,因为 osc 有一个表用来记录用户动态的,因为这个问题比较简单解决

谢谢红薯哥回复.
我是这样写的.
select distinct c from Concern c,Feed f where c.follow.id=f.who.id and c.fans.id=<me> order by f.optTime desc;
concern相当于好友表,feed就是用户动态表.
f.who表示动态的产生者.
然后连接查询.得到排序好的好友表.
然后再根据好友表for循环一个个查询他们最近的动态.
然后塞到好友表中传到前台.
这样做对不对啊?
@红薯 

最后一个问题啦:

动态表中比如oschina 

这是一条动态,表里需要存 questionId吗,传到前台前,还需要查询数据库,将questionId为的问题的title和content

在前台拼接形成这种动弹的样式吗?

谢谢

返回顶部
顶部