题解 | #牛客每个人最近的登录日期(二)#
牛客每个人最近的登录日期(二)
https://www.nowcoder.com/practice/7cc3c814329546e89e71bb45c805c9ad
select u.name,c.name,l.date from login l inner join user u on l.user_id=u.id inner join client c on l.client_id=c.id where (l.user_id,l.date) in (select l.user_id,max(l.date) from login l group by l.user_id) order by 1 asc
在做过一些sql题后发现join连接不同表再用where筛选要好过用where做连接
这道题卡点主要在于对于user_id取max(date)的方式,一开始想使用groupby但是一直报错后来看了大佬的where用法才顺利解决
本题经验总结
- 先join连接后where筛选>使用where做连接并筛选
- where语句可以用(a,b,c) in (d,e,f)这种形式一起处理

查看2道真题和解析