以特定顺序显示结果的简单mysql查询
我已经创建了两个表消息和对话 对话表将为发送和接收消息的两个用户创建唯一id 消息表将包含用户消息的所有信息 对话表以特定顺序显示结果的简单mysql查询,mysql,sql,database,Mysql,Sql,Database,我已经创建了两个表消息和对话 对话表将为发送和接收消息的两个用户创建唯一id 消息表将包含用户消息的所有信息 对话表 conversation_id | user_id1 | user_id2 |last_message_id 1 5 1 4 2 5 2 5 message_id | conversation_id | sender_id |
conversation_id | user_id1 | user_id2 |last_message_id
1 5 1 4
2 5 2 5
message_id | conversation_id | sender_id | message | created_time
1 1 5 MSG A 2012-06-10 00:20:04
2 1 5 MSG B 2012-06-10 00:20:21
3 1 5 MSG C 2012-06-10 00:21:09
4 1 1 MSG D 2012-06-10 00:22:23
5 2 5 MSG E 2012-06-10 00:25:16
我想要的输出:
sender_id | message | created_time
5 MSG E 2012-06-10 00:25:16
1 MSG D 2012-06-10 00:22:23
SELECT * FROM conversation c, messages m
WHERE c.user_id1='$userid' OR c.user_id2='$userid'
AND c.last_message_id=m.message_id
ORDER BY created_time DESC
SELECT * FROM conversation c, messages m
WHERE (c.user_id1='$userid' OR c.user_id2='$userid')
AND c.last_message_id=m.message_id
ORDER BY created_time DESC
我的尝试:
sender_id | message | created_time
5 MSG E 2012-06-10 00:25:16
1 MSG D 2012-06-10 00:22:23
SELECT * FROM conversation c, messages m
WHERE c.user_id1='$userid' OR c.user_id2='$userid'
AND c.last_message_id=m.message_id
ORDER BY created_time DESC
SELECT * FROM conversation c, messages m
WHERE (c.user_id1='$userid' OR c.user_id2='$userid')
AND c.last_message_id=m.message_id
ORDER BY created_time DESC
但此查询未显示正确的结果
我们是否也需要像下面这样的东西来分组
SELECT * FROM TABLE
WHERE CONDITION
(SELECT MAX(created_time)
FROM TABLE
GROUP BY SOMEFEILD)
order by time desc
尝试这样更改您的查询