我只是开始使用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
答案 0 :(得分:0)
您是否想要获取每个聊天中最新消息的聊天列表?
如果是这样,最好的办法是在聊天表中添加一列并添加'latest_message_id',以便您可以这样查询:
SELECT * FROM chat LEFT JOIN messages ON messages.id = chat.latest_message_id
否则你需要运行一个非常大的子查询,这将浪费大量的CPU和内存