我遇到了一个无法解决的问题..我们的SQL数据库中有一个消息表,其中包含一些字段,如text,senderid,recipientid,date,...
一项新功能是将Facebook等消息整合在一起。让我们说:
所以用户A必须在他的框中有三条消息:B,C,D。B包括(1,2),C包括(3),D包括(4),即使C不回复A(3) )和A不是D(4)。
简单的group by (senderid)
或group by (recipientid)
还不够......
怎么可能?
答案 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)
这将列出两个用户之间的所有消息对应关系。