select * from (
   select b.*  ,rank() over (partition by id_number order by 日志时间 desc ) rk from a,b where a.id_number=b.id_number) where rk=1;

解决方案 »

  1.   

    or 
    select * from a,(select * from b where id in (select max(id) from b group by id_number)) t
    where a.id_number=t.id_number;
      

  2.   

    lialin(阿林),能否给点提示,
    我不太明白,rank() over (partition by id_number order by 日志时间 desc 是什么意思?
    谢了..
      

  3.   

    bzszp(SongZip),你的方法可以,但非常耗资源,因为人员数量很多,还有其他方法吗?
      

  4.   

    就是按你的人员ID进行分组,然后再时间进行降序排序,这样对数据进行重新组织,那么每个ID的rk=1的记录就是最新的记录!rank是一个分析函数,你可以选择出来看一下效果估计会更清楚!
      

  5.   

    用 lialin(阿林) 的即可。