我想显示每个用户的最后一条消息。 我写了这个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。
谢谢。
答案 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");