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

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

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

with 
	user_like as (
select
			music.id,
			music_likes.user_id,
			music_likes.music_id,
			music.music_name
from
			music_likes
left join music on
			music.id = music_likes.music_id
right join follow on 
			follow.user_id = music_likes.user_id
	OR 
			follow.follower_id = music_likes.user_id
where follow.user_id=1 -- 查询用户喜欢和用户关注喜欢的所有歌曲
	),

	target_user_like as (
select 
			music_id,
			music_name
from 
			user_like
where
	user_id = 1
group by
	music_id,
	music_name
	),
	
	follow_user_like as (
	SELECT 
				music_id,
			music_name
from 
			user_like
where
	user_id != 1
group by music_id, music_name
	)
	
	

	select music_name from (SELECT  music_id,music_name
FROM follow_user_like A
WHERE NOT EXISTS (
    SELECT 1 
    FROM target_user_like B
    WHERE A.music_id = B.music_id
)
order by music_id asc) as s1;

使用cte,一步一步的拆解就行了

全部评论

相关推荐

迷茫的大四🐶:干脆大厂搞个收费培训得了,这样就人均大厂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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