我有以下这样一组数据,想要得到sendId或者是receId,也就是不管是我给对方发的消息,或者对方给我发的消息,获取我们聊天的最后一条记录,并且是得到,我们聊天的内容中,有多少条信息未读 isRead=1是未读,谢谢各位大神
id  sendId   sendName   message        time                  source       isRead     receId
1       22             周杰伦     您好     1352884243735           1            0               110
2       22             周杰伦     您好     1352884243735           1            1               110
3       20             刘德华     您好     1350205843000           1            0               110
4       20             刘德华     您好     1352884243735            1           1                110
5       22             周杰伦     您好     1350205843000           1            0                110
6       21             张学友     您好     1350205843000           1            0                110
7       21             张学友     您好      1352884243735          1           1                  110
8      110             kain     回复消息   1352884243735         1           1                  21
想要的结果是id  sendId   sendName   message        time                  source       isRead     receId       count
2       22             周杰伦     您好     1352884243735           1            1               110          1   带表22和110未读有1条)
4       20             刘德华     您好     1352884243735            1           1                110         1  带表20和110未读有1条)
8      110             kain     回复消息   1352945930578         1           1                  21          2(带表21和110用户未读2条)

解决方案 »

  1.   

    取相同sendId中时间最晚的记录?
      

  2.   

    7、8的sendId不同,应该没有关系吧,重新整理一下,准确描述问题
      

  3.   


    我有以下这样一组数据,想要得到sendId或者是receId,也就是不管是我给对方发的消息,或者对方给我发的消息,获取我们聊天的最后一条记录,并且是得到,我们聊天的内容中,有多少条信息未读 isRead=1是未读,谢谢各位大神
    id  sendId   sendName   message        time                  source       isRead     receId
    1       22             周杰伦     您好     1352884243735           1            0               110
    2       22             周杰伦     您好     1352884243735           1            1               110
    3       20             刘德华     您好     1350205843000           1            0               110
    4       20             刘德华     您好     1352884243735            1           1                110
    5       22             周杰伦     您好     1350205843000           1            0                110
    6       21             张学友     您好     1350205843000           1            0                110
    7       21             张学友     您好      1352884243735          1           1                  110
    8      110             kain     回复消息   1352884243736         1           1                  21
    想要的结果是id  sendId   sendName   message        time                  source       isRead     receId       count
    2       22             周杰伦     您好     1352884243735           1            1               110          1   带表22和110未读有1条)
    4       20             刘德华     您好     1352884243735            1           1                110         1  带表20和110未读有1条)
    8      110             kain     回复消息   1352945930578         1           1                  21          2(带表21和110用户未读2条)
    数据重新造出来了,就看你能不能得到这样最后的结果就好了
      

  4.   

    1       22             周杰伦     您好     1352884243735           1            0               110
     2       22             周杰伦     您好     1352884243735           1            1               110TIME一样,为什么只要2
      

  5.   

    SELECT *,
    (SELECT COUNT(*) FROM tt3 WHERE 
    (a.`sendId`=`sendId` OR (a.`receId`=`sendId` AND a.`sendId`=`receId`))
     AND `isRead`=1 AND a.`isRead`=1) AS ss
     FROM tt3 a WHERE NOT EXISTS(SELECT 1 FROM tt3 WHERE a.sendId=receId AND (a.`time`)
     <(`time`))
    AND NOT EXISTS(SELECT 1 FROM tt3 WHERE a.`sendId`=`sendId` AND a.`time`<`time`)
    AND a.`isRead`=1;