Mysql连接两个表并限制和排序一个表

时间:2017-07-15 18:38:10

标签: mysql sql

我只是开始使用MySQL而且我似乎被一个问题困扰了。

我有2张桌子,我已经加入了他们的工作部分,但这还不够。我希望它们可以通过顶部和下面的表格消息在一个表中按ID排序

实施例

表聊天

id
1
2
3

表格消息

chat_id
1
2
3

SELECT * 
FROM (SELECT * FROM `messages` ) AS m LEFT JOIN
     chat as c
     ON m.chat_id = c.id
WHERE c.one ='$user_id' OR c.two = '$user_id' 
GROUP BY c.id, m.chat_id  
ORDER BY m.dates DESC  
LIMIT 8

1 个答案:

答案 0 :(得分:0)

您是否想要获取每个聊天中最新消息的聊天列表?

如果是这样,最好的办法是在聊天表中添加一列并添加'latest_message_id',以便您可以这样查询:

SELECT * FROM chat LEFT JOIN messages ON messages.id = chat.latest_message_id

否则你需要运行一个非常大的子查询,这将浪费大量的CPU和内存

相关问题