在没有连接和子选择的GROUP BY之前执行ORDER BY

时间:2014-10-16 07:30:33

标签: mysql sql group-by sql-order-by

我目前正在开发一个基于ajax的chatand我得到了一个名为conversation_list的组件,其中包含所有可用聊天,其中包含以下信息:chat_partner_idchat_partner_type(某种用户分类),chat_partner_namelast_text_message。我已获得以下查询以获取所有必需的信息:

SELECT message.chat_partner_id, message.chat_partner_type, message.message AS last_chat_message, IF(message.chat_partner_type = 'normal_user', normal_user.username, premium_user.username) AS chat_partner_name
FROM message, normal_user, premium_user
WHERE IF(message.chat_partner_type = 'normal_user', message.chat_partner_id = normal_user.id, message.chat_partner_id = premium_user.id)
AND message.chat_user_id = 123 AND message.user_type = 'premium_user'
GROUP BY chat_partner_name
ORDER BY message.message_date DESC

除了last_text_message之外,结果是正确的。结果未显示聊天的最后一条消息。我认为这是因为行正在ORDER BY之前分组。

有没有办法显示没有复杂的连接和子选择的最后一条消息?我已经尝试在MAX()上使用last_text_message但没有成功。

0 个答案:

没有答案