窗口函数+内连接+排序
易错点:遗漏按name排序

select  user.name as u_n,c.name as c_n,date  
from(
select user_id,client_id,date from(
select user_id,date,client_id,row_number()over(partition by user_id order by date desc) as t
from login ) sub
where sub.t=1) a 
inner join user on a.user_id=user.id
inner join client c on a.client_id=c.id
order by user.name asc