按收件人ID和发件人ID的SQL组邮件与Facebook之类的邮件

时间:2012-04-03 12:50:18

标签: php mysql sql facebook message

我遇到了一个无法解决的问题..我们的SQL数据库中有一个消息表,其中包含一些字段,如text,senderid,recipientid,date,...

一项新功能是将Facebook等消息整合在一起。让我们说:

  1. 用户A向用户B发送消息
  2. 用户B正在回复A
  3. 用户A向用户C发送消息
  4. 用户D向用户A发送消息
  5. 所以用户A必须在他的框中有三条消息:B,C,D。B包括(1,2),C包括(3),D包括(4),即使C不回复A(3) )和A不是D(4)。

    简单的group by (senderid)group by (recipientid)还不够......

    怎么可能?

2 个答案:

答案 0 :(得分:0)

UNION结果:

select boxuser, count(*) from
(select senderid boxuser from messages
 union all
 select recipientid boxuser from messages)
group by boxuser 

答案 1 :(得分:0)

不完全确定您要实现的目标,但在列表页面上:

SQL查询,用于选择receientid或senderid = LOGGEDINUSER

的不同用户

这将列出登录用户与之通信的所有唯一身份用户。

用户X的消息页面中:

SQL查询,选择所有行(receiptientid = X和senderid = LOGGEDINUSER)或(senderid = X和receiptientid = LOGGEDINUSER)

这将列出两个用户之间的所有消息对应关系。