题解 | #网易云音乐推荐(网易校招笔试真题)#

网易云音乐推荐(网易校招笔试真题)

https://www.nowcoder.com/practice/048ed413ac0e4cf4a774b906fc87e0e7

思路解释: 首先求出1.被关注的人喜欢的音乐id;2.关注人喜欢的音乐id 然后使用表连接,将上述两个独立的表连接在一起 再使用case when是因为要去除被关注者喜欢音乐id中与关注者重复的部分 这样就求出了上述1和2中不重复的部分,也就是题目中要求的被关注的人喜欢的音乐id中关注人音乐列表中没有的音乐id 最后使用查询出的音乐id作为where查询条件在最后一张表中找到相符的音乐名称即可

select music_name from music where id in (select case when id1=id2 then null else id1 end from (select music_id id1 from music_likes where user_id in (select follower_id from follow where user_id=1)) xin1 #被关注的人喜欢的音乐id left join (select music_id id2 from music_likes where user_id=1) xin2 #关注人喜欢的音乐id on id1=id2) order by id

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 04:26
小红书 内容风控工程 (n+3) * 16 硕士985
点赞 评论 收藏
分享
路过的周先森:我就喜欢这种无限复活+筛选快的,比那些投进去就没声还占用投递次数的好多了
投递快手等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务