多表连接 + NOT IN解决
- 查询出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
- 查询user_id=1的用户喜欢的音乐
select music_id
from music_likes ml2
where user_id=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