题解 | #出现三次以上相同积分的情况#

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

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

原题目

查询向user_id = 1 的用户,推荐其关注的人喜欢的音乐。 不要推荐该用户已经喜欢的音乐,并且按music的id升序排列,不包含重复项。

表内容

  • follow: 关注人user_id, 被关注人follower_id
  • music_likes: user_id, music_id
  • music: id, name

解题点

  1. user_id = 1
  2. 推荐user_id = 1的follower_id喜欢的音乐且不推荐user_id = 1喜欢的音乐
  3. music.id升序
select distinct m.music_name
from follow as f
         left join music_likes as ml2 on f.follower_id = ml2.user_id
        inner join music m on ml2.music_id = m.id
where f.user_id = 1
  and ml2.music_id not in (
    select ml1.music_id
    from music_likes as ml1
    where ml1.user_id = 1
)
order by ml2.music_id;
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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