Сведения о вопросе

DED

04:35, 28th August, 2020

Теги

MySQL    

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

Просмотров: 283   Ответов: 4

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

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

В продакшене, разумеется всех сущностей больше, но суть раскрыта.
Есть ли красивое решение?



  Сведения об ответе

FAriza

06:02, 2nd August, 2020

Вот это не ваш случай — habrahabr.ru/qa/437/?


  Сведения об ответе

VCe znayu

06:44, 25th August, 2020

На сколько я понимаю хочется сделать это всё одним запросом?
Укажите, пожалуйста, названия таблиц (можно условно) и главное зависимости (т.е., если рейтинг в другой таблице, то по какому идентификационному полю он определяет своё наименование).


  Сведения об ответе

$DOLLAR

06:51, 16th August, 2020

Желательно, конечно, одним запросом. Если не получится красиво на MySQL, придется делать несколько запросов и хранить результаты в кеше, потому что выборка по одной рубрике получается около 30-120 миллисекунд аж.
Примерная структура таблиц:
Рейтинг для таблицы рубрик в этой же таблице. И для наименований рейтинг в колонке таблице наименований.

items
— id
cat_id
title
rating

cats
— id
title
rating


  Сведения об ответе

fo_I_K

21:04, 3rd August, 2020

сделайте DESCRIBE `название таблиц`;


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться