题解 | 网易云音乐推荐(网易校招笔试真题)
网易云音乐推荐(网易校招笔试真题)
https://www.nowcoder.com/practice/048ed413ac0e4cf4a774b906fc87e0e7
with music as(
select
ml.user_id,
m.id,
m.music_name
from music_likes ml
left join music m
on ml.music_id = m.id
)
select music_name
from (
select distinct
m.music_name,
m.id
from follow f
left join music m
on f.follower_id = m.user_id
where f.user_id = 1
and m.id not in (select music_id from music_likes where user_id = 1 )) m
order by id
用一个cte窗口,进行用户和音乐的连接,生成一张,所有用户的喜好音乐表,接着再从用户关注表中选出用户1关注的人,并排除用户1自己喜欢的音乐