求一条统计查询的SQL语句

 

    有一个站内私信表 private_message:

     


    想要实现类似于微博私信那种根据 好友 查询出私信会话.

     

     

select max(id) m_id,count(id) from ose_private_message where user_id=1 group by friend_id order by m_id;

 

 这条语句就是根据好友id(friend_id) 分组查询出和每个好友的私信数目,以及和好友的最近一条私信记录.

 


 

现在就想要同时查询出和每个好友的未读的私信数(read_status=0表示未读).

请问一条SQL语句能实现吗(MYSQL).SQL语句该怎么写嘞.

1个回答

select
friend_id,
max(id) m_id,
count(id),
(select count(*) from ose_private_message b where b.user_id=1 and b.friend_id=a.friend_id and b.read_status=0) unread_count
from ose_private_message a where user_id=1 group by friend_id order by m_id

jinnianshilongnian
jinnianshilongnian 不是我写的 是我同事写的
7 年多之前 回复
subwarhead
subwarhead 谢谢帮助,你的<<研磨设计模式>> 我有买哦,很不错的书.
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问