按用户分组对话mysql选择邮件

按用户分组对话mysql选择邮件,mysql,sql,Mysql,Sql,表: 我会把它放在sqlfiddle中,但它是我的,我在过去32小时内无法访问它 我搜索了SO,找到了几个相关的主题,但是有不同的分组要求,所以我无法将它们应用到我的项目中 对于查询,我知道当前用户id和目标用户id,并基于此我希望查询返回这两个用户按日期排序的所有对话 我的想法是: CREATE TABLE `messages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `from_user_id` int(11) unsigne

表:

我会把它放在sqlfiddle中,但它是我的,我在过去32小时内无法访问它

我搜索了SO,找到了几个相关的主题,但是有不同的分组要求,所以我无法将它们应用到我的项目中

对于查询,我知道当前用户id和目标用户id,并基于此我希望查询返回这两个用户按日期排序的所有对话

我的想法是:

CREATE TABLE `messages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `from_user_id` int(11) unsigned NOT NULL,
  `to_user_id` int(11) unsigned NOT NULL,
  `seen` tinyint(1) NOT NULL DEFAULT '0',
  `sent` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `message` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `messages` (`id`, `from_user_id`, `to_user_id`, `seen`, `sent`, `message`)
VALUES
    (1,2,1,0,'2013-11-06 11:05:42','Hello!'),
    (2,1,2,0,'2013-11-06 11:05:52','Hello you too!'),
    (3,3,1,0,'2013-11-06 11:06:08','Whats up?'),
    (4,1,3,0,'2013-11-06 11:06:27','Not much');
换句话说,我想选择:

SELECT message FROM messages WHERE from_user_id = 1 OR to_user_id = 1 [but where do I limit this query to target user 3?]

对于用户1,与用户3的对话。所有这些。

关于目标使用,你的意思是添加和到)user=3吗?@Madhivanan我想我没有解释清楚。我想选择这个:(3,3,1,0,'2013-11-06 11:06:08','What up?'),(4,1,3,0,'2013-11-06 11:06:27','Not Month');关于目标使用,你是说添加和到)user=3吗?@Madhivanan我想我没有解释清楚。我想选择这个:(3,3,1,0,'2013-11-06 11:06:08','What up?'),(4,1,3,0,'2013-11-06 11:06:27','Not Month');
(3,3,1,0,'2013-11-06 11:06:08','Whats up?')
(4,1,3,0,'2013-11-06 11:06:27','Not much')
SELECT message FROM messages 
WHERE 1 in (from_user_id,to_user_id) and 3 in (from_user_id,to_user_id)