select music_name from music_likes join music on id=music_id where user_id in (select follower_id from follow where user_id=1) and music_id not in (select music_id from music_likes where user_id=1) group by id order by id 1、整体思路,把用户id、音乐id和音乐name通过join链接,然后进行筛选和去重、排序 2、易错点1,一开始总是想着把链接后的表格里面1和1关注的user id选出来就行,其实这是重复操作,而且实际上选出user id关注的id后,进一步需要去重的不是user id<>1,而是和1喜欢重合的music_id 3、易错点2,运行结果发现要么是顺序不对,要么是重复了,而重复第一想到用distinct,但是内部查询对 id 进行排序,但外部查询的 DISTINCT 操作不会保留这个排序。order by的字段必须包含在select中,且distinct对所有select的列作用。所以需要和group by组合使用,达到对id去重和排序的作用