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

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

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

# 请你编写一个SQL,查询向user_id = 1的用户,推荐其关注的人喜欢的音乐。
# 不要推荐该用户已经喜欢的音乐,并且按music的id升序排列。你返回的结果中不应当包含重复项。
with s1 as
(
select 
    user_id,
    music_id,
    music_name
from 
    music_likes left join music 
    on music_id = id
),
s2 as
(
select
    user_id,
    music_id,
    music_name
from s1
where user_id in (select follower_id from follow f where f.user_id = 1)
),
s3 as
(
select
    user_id,
    music_id,
    music_name
from s1
where user_id = 1
)

select 
    music_name 
from
(
select distinct music_id,music_name from s1
where 
    music_id in (select music_id from s2)
    and
    music_id not in (select music_id from s3)
) as temp
order by music_id
;












全部评论

相关推荐

07-21 12:41
已编辑
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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