SQL练习67:牛客每个人最近的登录日期(二)

SQL练习67:牛客每个人最近的登录日期2

题目链接:牛客网

题目描述
牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天,用的是什么设备.
有一个登录(login)记录表,简况如下:
在这里插入图片描述
第1行表示id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网
。。。
第4行表示id为3的用户在2020-10-13使用了客户端id为2的设备登录了牛客网

还有一个用户(user)表,简况如下:
在这里插入图片描述
还有一个客户端(client)表,简况如下:
在这里插入图片描述
请你写出一个sql语句查询每个用户最近一天登录的日子,用户的名字,以及用户用的设备的名字,并且查询结果按照user的name升序排序,上面的例子查询结果如下:
在这里插入图片描述
查询结果表明:
fh最近的登录日期在2020-10-13,而且是使用pc登录的
wangchao最近的登录日期也是2020-10-13,而且是使用ios登录的


解法
连接login、user、date三个表,通过子查询的方式获得MAX(date)最近的日期,再添加题中条件即可,最后按照name升序排列。

SELECT u.name, c.name, l.date
FROM login l, user u, client c
WHERE l.date = (SELECT MAX(date)
               FROM login l1
               WHERE l.user_id = l1.user_id)
AND l.user_id = u.id
AND l.client_id = c.id
ORDER BY u.name

猜你喜欢

转载自blog.csdn.net/qq_43965708/article/details/113796872