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

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

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

# 找到user_id = 1关注的用户
with t1 as (
select follower_id
from follow
where user_id = 1
),
# 找到他关注的用户喜欢的音乐
t2 as (
select t1.follower_id, a.music_id
from t1
left join music_likes as a
on t1.follower_id = a.user_id
),
t3 as (
select t2.*, b.music_name
from t2
left join music as b
on t2.music_id = b.id
),
# 找到user_id = 1的人的喜欢音乐
t4 as (
    select music_name
    from (
        select c.user_id, d.music_name
        from music_likes as c
        left join music as d
        on d.id = c.music_id
    ) as e
    where user_id = 1
)
select music_name
from (
    select DISTINCT music_name, music_id
    from t3
    where music_name not in (
                select music_name
                from t4
                )
    order by music_id
) as f;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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