原题目

查询向user_id = 1 的用户,推荐其关注的人喜欢的音乐。 不要推荐该用户已经喜欢的音乐,并且按music的id升序排列,不包含重复项。

表内容

  • follow: 关注人user_id, 被关注人follower_id
  • music_likes: user_id, music_id
  • music: id, name

解题点

  1. user_id = 1
  2. 推荐user_id = 1的follower_id喜欢的音乐且不推荐user_id = 1喜欢的音乐
  3. 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;