select 
u.name u_n
,c.name c_n
,date
from user u 
join login l on u.id=l.user_id
join client c on c.id=l.client_id
where (user_id,date) in 
(
    select user_id,max(date) over(partition by user_id) from login
)
order by u.name

思路:利用窗口函数找到每个人的id和最后登录日期,最后按个人名字排序