如果我按照id分组排序,取时间戳最新的,只会出现一条数据,如果我按照姓名排序,到是出现了3调数据.当出现了另一个id为2,并且姓名一模一样的,那就会出现另一种结果,这个该怎么办?
思路:分组取时间戳最大的行。
select n.* from ( select a.id,b.人名,max(b.时间戳) as max_t from a inner join b on a.id =b.id group by a.id,b.人名 ) m inner join b n on m.id = n.id and m.max_t =n.时间戳 and m.人名 = n.人名
SELECT A.ID,A.人名,B.内容,A.时间戳 FROM
(SELECT ID,人名,MAX(时间戳) 时间戳 FROM 表 GROUP BY ID,人名) A
LEFT JOIN 表 B ON A.ID=B.ID AND A.人名=B.人名 AND A.时间戳=B.时间戳
是两个表对吧
假设 是这两个表
select m.*,n.内容 from ( select a.id,a.人名,max(a.时间戳) as 时间戳 from a group by a.id,a.人名 )m inner join b n on m.id = n.id