81,092
社区成员
发帖
与我相关
我的任务
分享
~!!~~ WHERE
select distinct username from (
select t5.*,rownum r from (
select t1.toUserid,t2.username,t1.sendtime from (select toUserid,sendtime from message
where fromUserid=(select userid from user where username='TestUser')) t1 join user t2 on(t1.toUserid=t2.userid)
union
select t3.fromUserid,t4.username,t3.sendtime from (select fromUserid,sendtime from message
where toUserid=(select userid from user where username='TestUser')) t3 join user t4 on(t3.fromUserid=t4.userid)
)t5 order by t5.sendtime desc
)t6 where t6.r<=10;
select username from (
select distinct t5.username from (
select t1.toUserid,t2.username,t1.sendtime from (select toUserid,sendtime from message
where fromUserid=(select userid from user where username='TestUser')) t1 join user t2 on(t1.toUserid=t2.userid)
union
select t3.fromUserid,t4.username,t3.sendtime from (select fromUserid,sendtime from message
where toUserid=(select userid from user where username='TestUser')) t3 join user t4 on(t3.fromUserid=t4.userid)
)t5 order by t5.sendtime desc
) where rownum<=10;
select username from (
select distinct t5.username from (
select t1.toUserid,t2.username,t1.sendtime from (select toUserid,sendtime from message
where fromUserid=(select userid from user where username='TestUser')) t1 join user t2 on(t1.toUserid=t2.userid)
union
select t3.fromUserid,t4.username,t3.sendtime from (select fromUserid,sendtime from message
where toUserid=(select userid from user where username='TestUser')) t3 join user t4 on(t3.fromUserid=t4.userid)
)t5 order by t5.sendtime desc
) where rownum<=10;
select u.userid, u.username , m.fromUserid, m.toUserid , m.sendtime from t_user u , Message m
where u.username = 'test1' and m.fromUserid = u.userid
and rownum < 11
order by m.sendtime desc ;
select *
from (select tt.touserId, max(sendtime) as sendtime --按对方ID分组,时间最大的就是最近联系的时间
from (select t.touserid, t.entrydate as sendtime
from message t, t_user u
where t.formuserid = u.userid
and u.username = 'TestUser' --testuser作为发送者
union
select t.formuserid, t.entrydate
from message t, t_user u
where t.touserid = u.userid --testuser作为接收者
and u.username = 'TestUser') tt
group by tt.touserId
order by sendtime desc) --所以人按最近时间排序
where rownum < 11 --取前10条
select *
from (select *
from (select t.touserid, max(t.entrydate)
from message t, t_user u
where t.formuserid = u.userid
and u.username = 'TestUser'
group by t.touserid
union
select t.formuserid, max(t.entrydate)
from message t, t_user u
where t.touserid = u.userid
and u.username = 'TestUser'
group by t.formuserid) tt
order by 2 desc) t1
where rownum <= 10