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

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

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

先整理题目的限制条件,分步整理语句。 条件1:user_id=1的人关注的人喜欢的音乐 条件2:不要推荐该用户已经喜欢的音乐 易错点:结果只现实music name但是要按music的id升序排列、返回的结果中不应当包含重复项。 关注的人的ID(): select follower_id from follow where user_id=1 该用户自己喜欢的音乐ID: select music_id from music_likes where user_id=1 三表连接,music_likes表需要全部保留,用左连接 music_likes ml left join follow f on ml.user_id=f.user_id left join music m on ml.music_id=m.id 要找的字段是m.music_name 两个限制条件 ml.user_id in (select follower_ID from follow where user_id=1) and m.id not in (select music_id from music_likes where user_id=1) 最后再考虑重复项和按music的ID升序排列

select music_name from( select distinct m.id,m.music_name music_name from music_likes ml left join follow f on ml.user_id=f.user_id left join music m on ml.music_id=m.id where ml.user_id in (select follower_ID from follow where user_id=1) and m.id not in (select music_id from music_likes where user_id=1) order by m.id) a

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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