У меня проблема, которая сводит меня с ума, и я надеюсь, что кто-то из вас сможет мне помочь.
У меня есть таблица, где я храню несколько видео с YouTube. Теперь для каждого канала я храню через youtube API 20 видео. Так что, если у меня есть 6 каналов, у меня будет 120 видео. Каждое видео имеет своего рода «отметку времени».
Мне нужно извлечь из этой таблицы два последних видео, упорядоченных по полю DESC для каждого канала. Я попробовал как загруженный скриншот, но это не то, что я хочу.
Кто-нибудь может мне помочь, пожалуйста?
Sql: версия 5.5.60-MariaDB-Mysql
Спасибо за любую помощь
введите описание изображения здесь
Это то, что я долго пытался
SELECT publishedAt, channelId, channeltitle
FROM video_from_youtube a
WHERE a.id
IN (
SELECT MAX(t.id)
FROM video_from_youtube t
WHERE a.channelId = t.channelId
)
OR
a.id
IN (
SELECT MAX(t.id)
FROM video_from_youtube t
WHERE a.channelId = t.channelId AND
t.id NOT IN (
SELECT MAX(t2.id)
FROM video_from_youtube t2
WHERE t.channelId = t2.channelId
)
)
ORDER BY a.publishedAt DESC, a.id[enter image description here][1]
это фактический результат запроса