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

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

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

首先想到用联结,但是时间和压力下还是运用子查询将复杂问题分解为小问题。实际数据量大时,子查询的效率比联结效率低,in和exist在面对不同大小的内外表时效率也不同。

select music_name from music 
where id in 
(
    select music_id from music_likes where user_id 
    in (select follower_id from follow where user_id = 1) #找到用户喜爱的用户
    and music_id not in 
    (select music_id from music_likes where user_id = 1) #排除用户已经喜欢的音乐
) 
order by id;


使用连接

select b.music_name from music_likes a left join music b 
on a.music_id = b.id
where a.user_id in
(select follower_id from follow where user_id = 1) 
and 
a.music_id not in
(select music_id from music_likes where user_id = 1)
order by a.music_id asc;
全部评论
结果不对啊
1 回复 分享
发布于 2022-03-17 15:32

相关推荐

12-09 16:31
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务