WITH
t AS (
SELECT
a.music_id,
b.music_name
FROM
(
SELECT DISTINCT
music_id
FROM
music_likes
WHERE
user_id IN (
SELECT
follower_id
FROM
follow
WHERE
user_id = 1
)
OR user_id = 1
) AS a
JOIN music AS b ON a.music_id = b.id
WHERE
a.music_id NOT IN(
SELECT
music_id
FROM
music_likes
WHERE
user_id = 1
)
)
SELECT
music_name
FROM
t
ORDER BY
music_id ASC
先选出用户自己和他关注的人的喜欢的音乐然后去重再去掉用户自己喜欢的音乐,再和music表连接后排序就好了,感觉自己写的比较麻烦但是懒得改了嘿嘿

京公网安备 11010502036488号