获得相应表的信息本就需要两个内连接(三张表相连)。但是,

获得user_id, MAX(login.date)容易,而要获得user_id, MAX(login.date)所在行的client_id就不得不再用一次内连接。

因此出现了三个内连接,连接了四个表。

SELECT user.name u_n, client.name c_n, login.date 
FROM login JOIN client ON login.client_id=client.id
JOIN user ON login.user_id=user.id 
JOIN 
(SELECT user_id, MAX(login.date) date FROM login GROUP BY user_id) t1 
ON t1.user_id=login.user_id AND t1.date=login.date
ORDER BY u_n;