我有3個表消息,消息用戶和用戶。彙總連接表的最大元素
我想提取一個用戶收到最後一條消息的對話列表,我也想訪問這條消息的數據。 會話列表的順序應該是包含最先收到的最後一個消息的順序。 (談話只是message.conversation一個id)
我得到的東西差不多的工作是這樣的:
SELECT mu.*
, m.id message_id
, m.conversation message_conversation
, m.from message_from
, m.text message_text
, m.date_created message_date_created
, user1.type user1_type
, user1.name user1_name
, user1.email user1_email
, user1.avatar_blob_key user1_avatar_blob_key
FROM message_user mu
LEFT
JOIN message m
ON m.id = mu.message
LEFT
JOIN user user1
ON user1.id = m.from
WHERE mu.to = THE_USER_ID
GROUP
BY m.conversation
ORDER
BY mu.message DESC;
但這個查詢沒有得到最後接收到的消息,但第一個在每一個對話,而不是:/
看起來這個部分ORDER BY message_user.message DESC
沒有被查詢使用。
這是一個標準的GROUPWISE MAX問題。之前回答了很多次。 – Strawberry
我想是這樣,但我不知道我的查詢中出了什麼問題......你能指出我的方向嗎? –
在沒有任何聚合函數的情況下,使用GROUP BY子句總是不合適的。 – Strawberry