以特定顺序显示结果的简单mysql查询

以特定顺序显示结果的简单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 |

我已经创建了两个表消息和对话

对话表将为发送和接收消息的两个用户创建唯一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

尝试这样更改您的查询