我不擅长Mysql表达式,所以这里有一个简单的问题,我正试图解决这个问题。我想颠倒 GROUP BY 表达式的顺序,以便我可以获得用户的最后一个条目。
我设法在互联网上找到了很好的例子,但我没有收到错误就无法用我的表达来实现它们。多谢你们!
SELECT messages.conv, messages.from_user, messages.to_user,
messages.content, messages.date_posted, messages.note_read,
messages.active, users.thumb, users.name, users.id
FROM `messages`
INNER JOIN `users`
ON messages.from_user = users.id
WHERE messages.from_user = 1
OR messages.to_user = 1
GROUP BY messages.conv
ORDER BY date_posted ASC
答案 0 :(得分:4)
GROUP BY
没有任何聚合,你想要的是每个对话的最后一行,这更像是(假设messages
与users
一样,有一个名为id
的自动增量主键;
SELECT messages.conv, messages.from_user, messages.to_user,
messages.content, messages.date_posted,
messages.note_read, messages.active, users.thumb,
users.name, users.id FROM `messages`
INNER JOIN `users`
ON messages.from_user = users.id
WHERE messages.id IN
(SELECT MAX(id) FROM messages
WHERE messages.from_user = 1 OR messages.to_user = 1
GROUP BY conv);