Php SQL按收件人id和发件人id将邮件分组到一个类似Facebook的位置
我遇到了一个无法解决的问题。。我的SQL数据库中有一个消息表,其中包含一些字段,如text、senderid、recipientid、date等等 一个新功能是将这些消息像Facebook一样分组到一个组中。比如说:Php SQL按收件人id和发件人id将邮件分组到一个类似Facebook的位置,php,mysql,sql,facebook,message,Php,Mysql,Sql,Facebook,Message,我遇到了一个无法解决的问题。。我的SQL数据库中有一个消息表,其中包含一些字段,如text、senderid、recipientid、date等等 一个新功能是将这些消息像Facebook一样分组到一个组中。比如说: 用户A正在向用户B发送消息 用户B正在回复A 用户A正在向用户C发送消息 用户D正在向用户A发送消息 因此,用户A的框中必须有三条消息:B,C,D。B包括(1,2),C包括(3)和D包括(4),即使C不回复A(3),A不回复D(4) 一个简单的groupby(senderid)或g
groupby(senderid)
或groupby(recipientid)
是不够的
这怎么可能呢?合并结果:
select boxuser, count(*) from
(select senderid boxuser from messages
union all
select recipientid boxuser from messages)
group by boxuser
不完全确定您希望实现什么,但在列表页面上: 选择不同用户的SQL查询,其中receipenId或senderid=LOGGEDINUSER 这将列出登录用户与之通信的所有唯一用户 用户X的消息页面中的: SQL查询,选择(ReceipItemId=X和senderid=LOGGEDINUSER)或(senderid=X和ReceipItemId=LOGGEDINUSER)中的所有行
这将列出两个用户之间的所有消息通信。难道“A”不包含所有四条消息吗?如果您单击此项阅读(如facebook),他应该在消息框中包含三条消息,但消息(2)包含在消息(1)中。用户为X的所有消息的时间线