Как запросить график / иерархические данные в MySQL
Предположим, у меня есть таблица объектов, структурированных в иерархии:
A
|--B
|--C
| +--D
+--E
Они хранятся в «parent-child» Таблица таким образом:
parent child
A B
A C
C D
A E
Как я могу запросить это, чтобы получить структуру, определенную выше? Я думаю, что мне нужно что-то, что производит такую информацию:
object full_path
A NULL
B A
C A
D A.C
E A
Я не могу понять, как сделать объекты, вложенные глубже, чем на один уровень. Такое ощущение, что мне может понадобиться перебрать таблицу (понятия не имею, возможно ли это в SQL) или каким-то другим образом использовать какой-либо запрос, с которым я никогда раньше не сталкивался.
Дополнительная информация:
A need not be the only orphan object. Children may have multiple parents BUT for now I'm happy with an answer to whichever scenario is easier to solve. I can abide converting a multi-parent structure to a single parent with a simpleGROUP BY
and MIN
statement.