我有一个问题,你能帮我吗?
我正在使用“group by”和“order by”,但 order by 不起作用
我想获取在列中具有相同值的组的最后一个元素
这是我的查询
$query = mysql_query("SELECT * FROM messages GROUP BY id_sender ORDER BY message_time");
messages
id | sender | receiver | message_time | id_sender
1 | Joe | Mellen | 05-01-30 | 1
2 | Joe | Mellen | 04-01-31 | 1
3 | balbal | blabla | 05-01-30 | 2
4 | balbal | blabla | 15-31-20 | 2
我想要得到类似的东西
Joe Mellen / 04-01-31
balbal blabla / 15-31-20
最佳答案
听起来您在阅读额外评论后正在寻找类似的东西:
select m.*
from messages m
join (
select id_sender, max(id) maxid
from messages
group by id_sender
) t on m.id = t.maxid
基本上,您需要使用子查询来确定每个 id_sender 的每个 id 的 max()
,然后连接回原始表。
关于mysql group by 和 order by 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224983/