我有一张用户表user
id(自增主键)         name(名字)
另有一张用户关系表friend
userID1       userID2
如果两个用户是好友,则它会在这个表中建立一条记录,这条记录由两个用户的id组成。
另外,我还有一个用户活动表userActive
userID      active        heppenData(发生时间)这个表里存放相应id用户的一些活动信息和发生时间。我想做的是查询某个用户id的所有好友的最新的 一条活动记录,这个语句该怎么写,谢谢!

解决方案 »

  1.   

    select a.* from userActive a join friend b on a.userID=b.userID2 where b.userID1=??? and not exists (select 1 from userActive where userID=a.userID and heppenData>a.heppenData)
      

  2.   

    --> or
    select a.* from userActive a join friend b on a.userID=b.userID2 where b.userID1=??? and a.heppenData=(select max(heppenData) from userActive where userID=a.userID)
      

  3.   

    select * from useractive a,friend b,user c
    where not exists(select 1 from useractive b where a.userid=b.userid and a.heppendata<b.heppendata)
    and a.userid=b.userid2 and b.userid1=c.id