原题目
查询向user_id = 1 的用户,推荐其关注的人喜欢的音乐。 不要推荐该用户已经喜欢的音乐,并且按music的id升序排列,不包含重复项。
表内容
- follow: 关注人user_id, 被关注人follower_id
- music_likes: user_id, music_id
- music: id, name
解题点
- user_id = 1
- 推荐user_id = 1的follower_id喜欢的音乐且不推荐user_id = 1喜欢的音乐
- 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;