方法1:

SELECT c.name,client.name,c.dmax
FROM (
/2.保留1中的最近登录信息,并找到各用户最近记录所用的客户端id/
SELECT b.name,b.dmax,login.client_id
FROM (
/1.首先找到各用户最近的登录日期和用户id以及用户名/
SELECT user.name,a.user_id,a.dmax
FROM (
SELECT user_id,MAX(date) AS dmax
FROM login
GROUP BY user_id
) AS a INNER JOIN user
ON a.user_id=user.id
) AS b INNER JOIN login
ON b.user_id=login.user_id AND b.dmax=login.date
) AS c INNER JOIN client
/3.找到每个客户端id对应的客户端名称/
ON c.client_id=client.id
/4.按照用户名升序排序/
ORDER BY c.name

方法2:

SELECT c.name,client.name,c.date
FROM (
/2.从user表中匹配用户名/
SELECT user.name,b.client_id,b.date
FROM (
/1.从login表中找到各用户最近登录的记录/
SELECT *
FROM login AS a
WHERE NOT EXISTS(
SELECT *
FROM login AS b
WHERE a.user_id=b.user_id AND a.date<b.date
)
) AS b,user
WHERE b.user_id=user.id
) AS c INNER JOIN client
/3.从client表中匹配客户端名称/
ON c.client_id=client.id
/4.按照用户名升序排序/
ORDER BY c.name