选择每个成员的最后一条消息

时间:2014-09-04 19:09:05

标签: php mysql select request last-modified

我想显示每个用户的最后一条消息。 我写了这个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。 id_membre_message是撰写邮件的会员ID。

谢谢。

1 个答案:

答案 0 :(得分: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");