多表连接 + NOT IN解决

  1. 查询出user_id=1中关注的人喜欢的音乐。
select distinct m.music_name
from follow f join music_likes ml on ml.user_id=f.follower_id 
			  join music m on ml.music_id=m.id
and f.user_id=1
  1. 查询user_id=1的用户喜欢的音乐
    select music_id
    from music_likes ml2 
    where user_id=1
  1. 利用NOT IN将两段结合起来,再根据题干加上distinct和order by音乐表的id。
select distinct m.music_name
from follow f join music_likes ml on ml.user_id=f.follower_id 
join music m on ml.music_id=m.id
where music_id not in (
    select music_id
    from music_likes ml2 
    where user_id=1
)
and f.user_id=1
order by m.id