Задать вопрос
@Malkolm163

Как сформировать sql запрос?

Есть 2 таблицы: авторы и книги. В таблице книг есть поле с id автора.
Помогите сформировать запрос, чтобы 1 запросом как то получить из таблицы книг по 5 последних книг для каждого автора.
Получать отдельными запросами не вариант, потому что за раз может быть запрошено 100~200 авторов...
  • Вопрос задан
  • 101 просмотр
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • Shultais Education
    Продвинутый SQL
    1 месяц
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для MySQL 8.0.2 и выше:
SELECT `a`.`name` AS `author_name`, `b`.`name` AS `book_name`
  FROM (
    SELECT `author_id`, `name`, 
           ROW_NUMBER() OVER (PARTITION BY `author_id` ORDER BY `id` DESC) AS `row`
      FROM `books`
  ) AS `b`
  JOIN `authors` AS `a`
    ON `b`.`row` < 6 AND `a`.`id` = `b`.`author_id`
  WHERE `a`.`id` IN (список id)
  ORDER BY `a`.`name`, `b`.`name`
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы