Выборка последних 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
Для правильного вопроса надо знать половину ответа
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`