Выборка разом топ рубрик и определенного кол-ва топ-наименований по каждой из рубрик

Уважаемые коллеги!
Вот уже несколько дней думаю над запросом.
Есть таблица с рубриками и таблица с наименованиями. У каждой рубрики и наименования есть поле рейтинга.
Делаю выборку наименований с их рубриками.
Задача в том, чтобы выбрать ТОП 3 наименования из ТОП 3 рубрик. Другими словами хочу чтобы результат примерно был таков:

фильмы | аватар | рейтинг рубрики 10 | рейтинг наименования 100 |
фильмы | крестный отец | рейтинг рубрики 10 | рейтинг наименования 90 |
фильмы | звездные войны | рейтинг рубрики 10 | рейтинг наименования 60 |
сериалы | доктор хаус | рейтинг рубрики 8 | рейтинг наименования 200 |
сериалы | тбв | рейтинг рубрики 8 | рейтинг наименования 40 |
сериалы | интерны | рейтинг рубрики 8 | рейтинг наименования 10 |
мультфильмы | жил был пёс | рейтинг рубрики 5 | рейтинг наименования 90 |
мультфильмы | том и джерри | рейтинг рубрики 5 | рейтинг наименования 80 |
мультфильмы | бурума свергли с престола | рейтинг рубрики 5 | рейтинг наименования 66 |

В продакшене, разумеется всех сущностей больше, но суть раскрыта.
Есть ли красивое решение?
  • Вопрос задан
  • 2340 просмотров
Решения вопроса 1
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Вот это не ваш случай — habrahabr.ru/qa/437/?
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Progrik
На сколько я понимаю хочется сделать это всё одним запросом?
Укажите, пожалуйста, названия таблиц (можно условно) и главное зависимости (т.е., если рейтинг в другой таблице, то по какому идентификационному полю он определяет своё наименование).
Ответ написан
Комментировать
Setti
@Setti Автор вопроса
Желательно, конечно, одним запросом. Если не получится красиво на MySQL, придется делать несколько запросов и хранить результаты в кеше, потому что выборка по одной рубрике получается около 30-120 миллисекунд аж.
Примерная структура таблиц:
Рейтинг для таблицы рубрик в этой же таблице. И для наименований рейтинг в колонке таблице наименований.

items
— id
cat_id
title
rating

cats
— id
title
rating
Ответ написан
Комментировать
@phasma
сделайте DESCRIBE `название таблиц`;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы