select talkAboutUserId,content,id from 聊天表 where recvUserId = 1  order by id desc 

解决方案 »

  1.   

    单一个recvUserId 不够呀,3号就没给1号发过信息(1号给3号发过)。 
      

  2.   

    select talkAboutUserId,content,id from 聊天表 where recvUserId = 1 or sendUserID = 1order by id desc 
      

  3.   


    sELECT * from ttq a where not exists(select 1 from ttq where sendUserID=a.recvUserID and a.id<id)
    order by id desc
      

  4.   

    原表可没有talkAboutUserId的字段
      

  5.   

    select if(recvUserId=1, sendUserId, recvUserId) talkAboutUserId,content,id from 聊天表 where recvUserId = 1 or sendUserID = 1 order by id desc 
      

  6.   

    sELECT *,if(sendUserID=1,recvUserID,sendUserID) as  talkAboutUserID from ttq a where not exists(select 1 from ttq where sendUserID=a.recvUserID and a.id<id)
    and (recvUserID=1 or sendUserID=1)
     order by id desc
      

  7.   

    不行, 查出5记录了,1号只和2,,3,4说过话,应该查出3条才对;
    就类似微信,1是自己, 2,3,4是你的好友, 查出和他们最近的一条聊天信息,不管这条信息是你发送的,还是对方发送的;
    你的数据?用
    id(自增), sendUserID, recvUserID, content
       1,   1,   2,   '2号你好'
       2,   1,   3,   '3号你好'
       3,   1,   4,   '4号你好'
       4,   4,   1,   '我是4号,1号你好烦'
       5,   2,   1,   '我是2号,1号你好烦'测试,结果正确
      

  8.   

    不行, 查出5记录了,1号只和2,,3,4说过话,应该查出3条才对;
    就类似微信,1是自己, 2,3,4是你的好友, 查出和他们最近的一条聊天信息,不管这条信息是你发送的,还是对方发送的;
    你的数据?用
    id(自增), sendUserID, recvUserID, content
       1,   1,   2,   '2号你好'
       2,   1,   3,   '3号你好'
       3,   1,   4,   '4号你好'
       4,   4,   1,   '我是4号,1号你好烦'
       5,   2,   1,   '我是2号,1号你好烦'测试,结果正确不行, 查出5记录了,1号只和2,,3,4说过话,应该查出3条才对;
    就类似微信,1是自己, 2,3,4是你的好友, 查出和他们最近的一条聊天信息,不管这条信息是你发送的,还是对方发送的;
    你的数据?用
    id(自增), sendUserID, recvUserID, content
       1,   1,   2,   '2号你好'
       2,   1,   3,   '3号你好'
       3,   1,   4,   '4号你好'
       4,   4,   1,   '我是4号,1号你好烦'
       5,   2,   1,   '我是2号,1号你好烦'测试,结果正确
    我测试了一下, 结果不对啊, 相同的人会出现多条记录; 就4个人(1,2,3,4号),1号是自己, 肯定只能出现3条呀;
    我用的测试数据是
       1,   1,   2,   '2号你好'
       2,   1,   3,   '3号你好'
       3,   1,   4,   '4号你好'
       4,   4,   1,   '我是4号,1号你好烦'
       5,   2,   1,   '我是2号,1号你好烦'
      6, 2, 1,‘我是2号,再次向1号问好’
      

  9.   

    数据要准备好
    sELECT *,iif(sendUserID=1,recvUserID,sendUserID) as  talkAboutUserID from ttq a where 
    (not exists(select 1 from ttq where sendUserID=a.recvUserID and a.id<id
    or
    sendUserID=a.sendUserID and a.recvUserID=recvUserID and a.id<id
    ))
     and 
    (recvUserID=1 or sendUserID=1)
      order by id desc