Как сделать такой запрос к Mysql?

В таблице - есть родительские и дочерние элементы. Родительские имеют pid=0. Дочерние pid="id родителя" Мне нужен такой запрос - выбрать последние 10 постов (родителей) и от каждого родителя последние 3 комментария (дочери). Это возможно?
  • Вопрос задан
  • 616 просмотров
Решения вопроса 2
trevoga_su
@trevoga_su
одним запросом не сделать.
либо запрашиваете родителей и отдельным запросом потомков,
либо (если маленький объем данных) получаете все записи на уровне php сроете древовидную структуру
Ответ написан
Комментировать
@bahus162
Предположим таблица forum из 3х столбцов id, pid, text, где id уникальный индекс поста растущий с каждым новым дополнением записи, pid идентификатор родительского поста (равный 0 если самый верхний, корневой), text содержание. Тогда запрос(довольно кстати ресурсоемкий с ростом размера таблицы) следующий:
SELECT *
FROM forum
WHERE pid IN (SELECT id
FROM forum
WHERE pid=0
ORDER BY id DESC
LIMIT 10)
Выбирает правда все дочерние комментарии последних 10 родительских, как по 3 шт не знаю
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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