@oldzas

Как из другой таблицы выбрать последние три записи?

Добрый день.

Есть 2 таблицы: юзеры и посты.
Вопрос: как выбрать всех юзеров и вывести у каждого из них по три последних поста? (без подзапроса)

Я сджойнил 2 таблицы и застрял - как же выбрать по 3 последних поста?

Спасибо
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
WITH `cte` AS (
  SELECT *, ROW_NUMBER() OVER `w` AS `row_num`
    FROM `posts`
    WINDOW `w` AS (
      PARTITION BY `user_id`
      ORDER BY `time` DESC
    )
) SELECT *
  FROM `cte`
  JOIN `users` ON `users`.`id` = `cte`.`user_id`
  WHERE `cte`.`row_num` <= 3
Ответ написан
Ваш ответ на вопрос

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

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