【发布时间】:2012-02-16 10:07:46
【问题描述】:
下面的 SELECT 语句
select *
from messages
where receiverID = '5'
group BY senderID
order by id DESC
数据库:
id | senderID | receiverID | message
1 | 245 | 5 | test 1
2 | 89 | 5 | test 2
3 | 79 | 5 | test 3
4 | 245 | 5 | test 4
5 | 245 | 5 | test 5
对于 senderID=245,我希望返回 id=5 的行,但它返回的行 id=1,但我想要最后一行。如何实现?
返回:
id | senderID | receiverID | message
1 | 245 | 5 | test 1
2 | 89 | 5 | test 2
3 | 79 | 5 | test 3
哦,我成功了:D
所以这是有效的代码,对于任何有类似问题的人
SELECT * FROM ( SELECT * FROM messages WHERE
receiverID = '5' ORDER BY id DESC) AS m GROUP BY senderID ORDER BY id DESC
【问题讨论】:
-
您能改写一下这个问题吗?也许是您尝试实现的示例列表结果
-
你为什么在这里使用
GROUP BY? -
我使用 GROUP BY 因为我想要每个 senderID 的最后一行。
标签: mysql sql group-by sql-order-by