Обратно я со своим вопросом, пишу api для мобильного приложения. Приложение обычное, наподобие сообщество vk.com. Так вот, пользователь к посту может прикрепить фотографии (от 1 до 6 штук). Соответственно фотографиии загружаются до того момента, когда id поста ещё не известно. Структура таблицы:
attachments - id, path, publication_id (id записи, в момент создание равно 0, обновляется после создания поста)
Таблицы с постами:
wall - id, message
Если выполнить запрос:
SELECT * FROM `wall` LEFT JOIN `attachments` ON `wall`.`id` = `attachments`.`publication_id` ORDER BY `wall`.`id` DESC
То мы получим следующею структуру:
id | message | path | publication_id
4| сообщение | null | null
3 | сообщение | вложение | id записи
3| сообщение | вложение 3| id записи
2 | сообщение | вложение 2 | id записи
2 | сообщение | вложение 2 | id записи
1 | сообщение | вложение 1 | id записи
Т.е если вложений в одной записи два, то ответ будет содержать две строчки, как получить дерево
4| сообщение | null | null
3 | сообщение | вложение 3
------------------- вложение 3
2 | сообщение | вложение 2
-------------------вложение 2
1 | сообщение | вложение 1 | id записи