2013-07-23 4 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 

P.S. проверьте, существует ли user.user_id.

+0

WOW! ЭТО РАБОТАЕТ !, наконец, весь день! большое спасибо! – user2178521

Смежные вопросы