select u.name u_n, c.name c_n, a.date from ( select user_id, client_id, date, rank() over ( partition by user_id order by date desc ) rk from login ) a left join user u on a.user_id =u.id left join client c on a.client_id=c.id where a.rk=1 order by u.name