楼主只是说最靠后,但是不知道有多少条是吧?如果是这样,在表b里面肯定有个时间最大值吧?这样不就能取出最靠后的部门了吗?
select Select a.k1,a.k2,x.d1 from a
left join b as x on a.k1=x.k1 and a.k2=x.k2
where b.t1 = (select max(t1) from b)
这样就行了。
select a.*,b.*
from a,b
where d1 =
( select max(d1)
from
(
select a.k1,a.k2,b.d1 from a
left join b on a.k1=b.k1 and a.k2=b.k2
)
)
and a,k1 = b.k1 and a.k2 = b.k2;