2014-09-04 114 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。 id_membre_message是誰寫的消息的會員ID。

謝謝。

回答

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"); 
相關問題