SELECT * FROM conversation_1
LEFT JOIN conversation_2
ON conversation_1.c_id = conversation_2.c_id
LEFT JOIN user
ON conversation_2.user_id = user.user_id
LEFT JOIN message
ON conversation_1.c_id = message.c_id
WHERE conversation_1.user_id=1
GROUP BY message.c_id
conversation_1 conversation_2
c_id user_id c_id user_id
1 1 1 2
2 1 2 3
3 2
我有一個消息DB建立在MySQLMysql的組通過提取最後一行
我做4代表的用戶,conversation_1,conversation_2,消息
當用戶試圖打開他的消息框,它會取出來的所有對話(conversation_1)
不是加入到用戶conversation_2和使用conversation_2找出哪些用戶
比加入到該消息。
c_id user_id user_name message
1 2 Alex Hi user_1, this is user_2
2 3 John hi user_3, user_2 don't talk to me
它工作得很好,但是我想顯示message
從最後一排GROUP BY
目前它這個組中顯示的第一行。
ps.conversation_1.c_id是自動遞增和C_ID將插入到conversation_2誰擁有加入此對話
「* *最後」 未定義沒有明確排序的概念。你如何在你的'message'表中標識哪些消息是「* last *」? – eggyal
message_id是自動增量,我嘗試使用ORDER BY m_id DESC,但它只適用於沒有GROUP BY的1行,我需要的是超過1行 – user2178521