题解 | #网易云音乐推荐(网易校招笔试真题)#
网易云音乐推荐(网易校招笔试真题)
https://www.nowcoder.com/practice/048ed413ac0e4cf4a774b906fc87e0e7
整体不难,正常的表连接操作,在这里注意一下distinct和order by使用冲突的问题
这里提供两个解决方法
-- 方法1:再嵌套一层查询,再最外层排序
select music_name from (select distinct m1.id id,music_name from music_likes ml1 left join music m1 on ml1.music_id=m1.id left join follow f1 on ml1.user_id=f1.follower_id where f1.user_id=1 and music_name not in (select music_name from music_likes ml1 left join music m1 on ml1.music_id=m1.id where user_id=1) ) t1 order by id asc
-- 方法2:使用group by解决
select music_name from music_likes ml1 left join music m1 on ml1.music_id=m1.id left join follow f1 on ml1.user_id=f1.follower_id where f1.user_id=1 and music_name not in (select music_name from music_likes ml1 left join music m1 on ml1.music_id=m1.id where user_id=1) group by music_name order by max(m1.id) asc