2014-09-04 2 views
0

Я хочу отобразить последнее сообщение от каждого пользователя. Я написал этот запрос MySQL, но он отображает последнее сообщение от одного пользователя и первые сообщения от других пользователей. Я не понимаю, почему.Отметить последнее сообщение от каждого пользователя

SELECT * 
FROM cbadminmessages 
    INNER JOIN cbmembres ON cbadminmessages.id_membre_message=cbmembres.id 
WHERE id!='$admin_id' 
AND id_message IN(
    SELECT MAX(id_message) 
    FROM cbadminmessages 
    GROUP BY id_membre_message) 
ORDER BY id_message"); 

id_message - это идентификатор сообщения. id_membre_message - это идентификатор участника, который написал сообщение.

спасибо.

ответ

0

Ваш подзапрос кажется неправильным. Вы должны обратиться к внешним таблицам, чтобы выбрать максимум для каждого конкретного пользователя. Кроме того, использование табличных псевдонимов поможет очень многое.

SELECT ad.id_membre_message, ad.id_message #and anything else you'd like to select 
FROM cbadminmessages ad 
INNER JOIN cbmembres mem 
ON ad.id_membre_message=mem.id 
WHERE mem.id!='$admin_id' 
AND ad.id_message = (
    SELECT MAX(ad_sub.id_message) 
    FROM cbadminmessages ad_sub 
    WHERE ad_sub.id_membre_message = mem.id) 
ORDER BY ad.id_message"); 
Смежные вопросы