ストレージに mysql を使用してメッセージ システムを実装したいと考えています。
これはテーブルです:
CREATE TABLE `message` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_from` int(10) unsigned NOT NULL,
`id_to` int(10) unsigned NOT NULL,
`time` datetime NOT NULL,
`message` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
);
id_from はメッセージ送信者、id_to はメッセージ受信者です。
以下に、テスト目的で 4 つのメッセージを挿入します。
INSERT INTO `message`(`id`,`id_from`,`id_to`,`time`,`message`) VALUES
(1,1,2,'2012-07-05 12:18:49','msg1'),
(2,2,1,'2012-07-05 12:18:58','msg2'),
(3,3,1,'2012-07-05 12:19:04','msg3'),
(4,1,3,'2012-07-05 12:19:10','msg4');
私がやりたいことと成功していないことは、特定のユーザーの各ペア (id_from、id_to) に対して最後に送信または受信されたメッセージを取得するクエリを作成することです。この場合、結果は次のようになります。
row1: 2,2,1,'2012-07-05 12:18:58','msg2'
row2: 4,1,3,'2012-07-05 12:19:10','msg4'