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

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

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

先使用子查询找到用户1关注的人喜欢的所有音乐
SELECT t.music_id
FROM follow AS t
LEFT JOIN music_likes AS t1
ON t.follower_id = t1.user_id
WHERE t.user_id = 1 

然后和通过where语句筛选掉该用户已经喜欢的音乐
WHERE e.music_id not IN (SELECT music_id FROM music_likes WHERE user_id = 1 )

最后和music表连接找到对应的音乐名称
SELECT DISTINCT n.music_name
FROM
(-- 找出user_1关注的人喜欢的所有音乐
	SELECT t1.music_id
	FROM follow AS t
	LEFT JOIN music_likes AS t1
	ON t.follower_id = t1.user_id
	WHERE t.user_id = 1 
) AS e
JOIN music AS n
ON e.music_id = n.id
WHERE e.music_id not IN (SELECT music_id FROM music_likes WHERE user_id = 1 )
ORDER BY n.id

在牛客现在版本的mysql中不支持order by未被select的列,但是在sqlite中可以正常运行

全部评论

相关推荐

06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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