@AndroidRS

Как объединить таблицы, чтобы в итоги получить «дерево» вложений?

Обратно я со своим вопросом, пишу 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 записи
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
alekciy
@alekciy
Вёбных дел мастер
У вас видимо Materialized Path. С ходу нагуглил: Materialized Path в PostgreSQL
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы