2013-07-23 286 views
0
SELECT * FROM(
SELECT c_id, user_id, message, state, time FROM message 
WHERE receive=1 
ORDER BY message_id DESC 
)AS t GROUP BY c_id 

我有mysql語句可以爲用戶提取最後一條消息。按順序排列並按組排序

不過,我需要加入用戶表,這樣我就可以取出來了發件人的姓名

LEFT JOIN user ON user.user_id=message.user_id 

如何實現這一目標?

//user 
user_id name 

//conversation 
c_id user_id 

//message 
m_id c_id user_id(sender) receive message state time 

回答

1
SELECT * FROM (
    SELECT c_id, user_id, message, state, time 
    FROM message 
    WHERE receive=1 
    ORDER BY message_id DESC) AS t 
LEFT JOIN user ON user.user_id=t.user_id 
GROUP BY c_id 

附:檢查user.user_id是否存在。

+0

WOW!它工作!,終於,整天!非常感謝! – user2178521