我有一个问题,如果你可以帮我吗?
我正在使用“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
答案 0 :(得分:1)
在阅读了额外的评论后,听起来像是在寻找类似的东西:
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()
,然后再联接回原始表。