我有一个MySQL查询语句,如下:
SELECT
MAX(messages.ID) as maxID,
messages.from,
messages.read,
users.userName
FROM
messages
LEFT OUTER JOIN
users
ON
users.ID = messages.from
WHERE
messages.to = ?
GROUP BY
messages.from
ORDER BY
maxID DESC
虽然这样做很好,而且消息按照发送者以降序分组,但是当我想要按照messages.read行进行排序时,就会出现问题。我的代码如下:
SELECT
MAX(messages.ID) as maxID,
messages.from,
messages.read,
users.userName
FROM
messages
LEFT OUTER JOIN
users
ON
users.ID = messages.from
WHERE
messages.to = ?
GROUP BY
messages.from
ORDER BY
messages.read ASC,
maxID DESC
现在,messages.read返回的是用户发送的第一条消息的行值。但是我需要用户发送的最新(最高ID)的值。 我知道GROUP BY按表中的第一个进行分组,那么我该如何解决这个问题呢?
非常感谢您提前的帮助, Fischer