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

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

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

不知不觉的一个思路:

  1. 先拉平成一个宽表,表 里面有关注人,被关注人,音乐id,音乐名称。
  2. 其次,需要完成剔除掉关注人自己已经喜欢的音乐单——采取的思路是在第一个步骤的时候,将用户人id加入,同时加入0作为mark
  3. 然后最后根据music进行去重,选取那些group by 最小值不等于1的进行排除,因为如果在自身的歌单里面,最小值为0.
select c.music_name
from 
(select follower_id ,1 as mark
from follow as a 
where a.user_id = 1
union all 
select 1 as follower_id,0 as mark
) as a 
left join music_likes as b 
on a.follower_id=b.user_id
left join music as c 
on b.music_id=c.id
group by c.music_name,c.id
having min(mark) = 1
order by c.id
全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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