У меня есть таблицы БД category_path это в родительском ребенка отношения и его внешний вид, как этотвопрос MySql запросов в PHP
-----------------------------
id | parent_id
------------------------------
1 | NULL
2 | 1
3 | 2
4 | 1
5 | 3
6 | 2
с помощью этой таблицы я хочу, чтобы создать новую таблицу, в которой даст мне выход как это. В приведенной ниже таблице показано расстояние для каждого идентификатора от родителя 0 до этого идентификатора путем прохождения через его родителя.
----------------------------------
# |id | parent_id | distance
----------------------------------
1 | 1 | 1 | 0
2 | 1 | 2 | 1
3 | 1 | 3 | 2
4 | 1 | 4 | 1
5 | 1 | 5 | 3
6 | 1 | 6 | 2
7 | 2 | 2 | 0
8 | 2 | 3 | 1
9 | 2 | 5 | 2
10 | 2 | 6 | 1
11 | 3 | 3 | 0
12 | 3 | 5 | 1
13 | 4 | 4 | 0
14 | 5 | 5 | 0
15 | 6 | 6 | 0
Как получить это либо по запросу базы данных, либо по кодированию?
я хочу рекурсивный запрос для этого, но я знаю, что рекурсивный запрос не поддерживается MySql –
Как вы обратите внимание, что MySQL не поддерживает рекурсивные функции так не подходит для этой модели списка смежности для хранения иерархических данных. Вы должны рассмотреть возможность реструктуризации своих данных для использования вложенных наборов или таблиц закрытия. См. [Этот ответ] (http://stackoverflow.com/a/192462/623041) для получения дополнительной информации. – eggyal
выберите * из category_path я внутреннее соединение category_path с на c.id = i.id внутреннее соединение category_path c2 на c.parent_id = c2.id где c2.parent_id = @parentId –