将所有receiver-id与每个人的计数和消息以及历史消息一起分组

时间:2014-01-20 09:51:33

标签: mysql sql messaging

我已经构建了一个私人消息系统,并希望将所有ID分组为:enter image description here

使用姓名(ID)和消息计数,点击用户后,它将打开它们之间所有消息历史的历史记录。到达时的新消息将使用户在计数增加的同时增加新消息和聊天记录。我怎么做?

我已经分享了这个http://sqlfiddle.com/#!2/7b13a/1。但是我无法获得代码或程序来实现它。 我非常感谢任何帮助。谢谢你。

代码:

CREATE TABLE if not exists tblA
(
id int(11) NOT NULL auto_increment ,
sender varchar(255),
receiver varchar(255),
 msg varchar(255),
 date timestamp,
 PRIMARY KEY (id)
);


INSERT INTO tblA (sender, receiver,msg,date ) VALUES
('1', '2', 'buzz ...','2011-08-21 14:11:09'),
('1', '2', 'test ...','2011-08-21 14:12:19'),
('1', '2', 'check ...','2011-08-21 14:13:29'),
('1', '1', 'test2 ...','2011-08-21 14:14:09'),
('2', '1', 'check2 ...','2011-08-21 14:15:09'),
('2', '1', 'test3 ...','2011-08-21 14:16:09'),
('1', '2', 'buzz ...','2011-08-21 14:17:09'),
('1', '2', 'test ...','2011-08-21 14:18:19'),
('1', '2', 'check ...','2011-08-21 14:19:29'),
('1', '1', 'test2 ...','2011-08-21 14:10:09'),
('3', '1', 'check2 ...','2011-08-21 14:21:09'),
('3', '1', 'test3 ...','2011-08-21 14:22:09'),
('3', '2', 'buzz ...','2011-08-21 14:24:09'),
('3', '2', 'test ...','2011-08-21 14:25:19'),
('1', '3', 'check ...','2011-08-21 14:26:29'),
('1', '3', 'test2 ...','2011-08-21 14:27:09'),
('2', '3', 'check2 ...','2011-08-21 14:28:09'),
('2', '3', 'test3 ...','2011-08-21 14:29:09'),
('1', '2', 'check3 ...','2011-08-21 14:23:09');

总结:

1.将所有用户分别与所有用户分组并计算ORDER BY日期DESC

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

 user A is sending user B a message
 user B is replying to A
 User A is sending user C a Message
 user D is sending user A a message

因此用户A必须有三个用户块:B,C,D用于显示。 B包括(1,2),C包括(3),D包括(4),即使C不答复A(3)而A不答复D(4)。

同样点击每个用户,它将打开他们的消息历史记录。

0 个答案:

没有答案