2017-07-15 65 views
-1

我只是開始玩MySQL,我似乎被一個問題困住了。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

你需要從查詢中得到什麼?按ID排序的聊天中的所有消息列表? –

+0

@JoeyPinto yes親愛的當用戶發送新消息這條消息已被標記爲 –

+0

更新您的問題添加一個正確的數據樣本和預期的結果 – scaisEdge

回答

0

你試圖獲得來自每次聊天的最近消息的聊天列表?

如果是的話,最好的辦法是將列添加到聊天表包括「latest_message_id」這樣你就可以查詢這樣的:

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

否則,你將需要運行一個非常大的子查詢會浪費大量的CPU和內存

+0

民建聯是我想要顯示一條短信,並通過消息列出用戶 –