题解 | #网易云音乐推荐(网易校招笔试真题)#
网易云音乐推荐(网易校招笔试真题)
http://www.nowcoder.com/practice/048ed413ac0e4cf4a774b906fc87e0e7
思路如下: 首先利用子查询找到user_id=1的关注用户
进而利用子查询找到user_id=1的喜欢音乐
然后join muisc_likes表,找到用户属于1关注的用户的音乐,在从中找到不属于1已经喜欢的音乐的部分
在最外层利用distinct去重 最后排序
select distinct music_name from music m join
music_likes ml
on m.id = ml.music_id
where ml.music_id not in
(select music_id from music_likes
where user_id = 1)
and ml.user_id in
(select follower_id from follow
where user_id = 1)
order by ml.music_id