У меня в таблице содержатся песни. Я хочу выбрать топ 3 из самых любимых песен и 3 из случайных песен, которых нет в первой в одном запросе.
например:
и ожидаемый результат:
song 6, song 8, song 5 then *whatever song*,*whatever song*,*whatever song*
Вот что я пробовал, но не работает:
SELECT a.`song_id`, a.`name`, a.liked, b.song_id
FROM `song` AS a,
(SELECT song_id FROM song ORDER BY liked DESC LIMIT 3) as b
WHERE a.song_id <> b.song_id LIMIT 3
SELECT
a.`song_id`, a.`name`, a.liked, b.ids
FROM
`song` AS a,
(SELECT substring_index(GROUP_CONCAT(DISTINCT song_id ORDER BY liked DESC SEPARATOR ','), ',', 3) as ids FROM song) as b
WHERE
a.song_id not in(b.ids)
Я использую MariaDB 10.1.29, он не совместим с LIMIT
в подзапросе или в предложении WITH
.