Выборка последних 5 записей из БД c дочерними записями?

В базе данных есть таблица.
id, title, text, parent_id
1, Заголовок 1, Текст 1, 0
2, Заголовок 2, Текст 2, 0
3, Заголовок 3, Текст 3, 0
4, Заголовок 4, Текст 4, 3
5, Заголовок 5, Текст 5, 0
6, Заголовок 6, Текст 6, 1
7, Заголовок 7, Текст 7, 0
8, Заголовок 8, Текст 8, 0

Можно ли как то одним запросом выбрать последние 5 записей из таблицы с parent_id = 0, и к ним прибавляя дочерние записи? Т.е. из данного примера получить следующие данные.

2, Заголовок 2, Текст 2, 0
3, Заголовок 3, Текст 3, 0
4, Заголовок 4, Текст 4, 3
5, Заголовок 5, Текст 5, 0
7, Заголовок 7, Текст 7, 0
8, Заголовок 8, Текст 8, 0
  • Вопрос задан
  • 448 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `t2`.* 
  FROM (
    SELECT `id`
      FROM `table`
      WHERE `parent_id` = 0
      ORDER BY `id` DESC
      LIMIT 5
  ) AS `t1`
  JOIN `table` AS `t2` 
    ON `t2`.`id` = `t1`.`id` OR `t2`.`parent_id` = `t1`.`id`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Astrohas
@Astrohas
Python/Django Developer
SELECT * FROM
таблица AS t1 LEFT JOIN таблица as t2
ON t1.id = t2.parent_id
order by t1.id desc limit 5

не проверял
Ответ написан
Ваш ответ на вопрос

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

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