2010-06-08 2 views
3

У нас есть вложенные папки с отношениями родитель-потомок. Мы используем MySQL MyISAM DB. Данные хранятся в БД следующим образом.SQL-запрос родительских дочерних записей

Каждый раз, когда дочерняя папка создается во вложенной структуре, добавляется предыдущий родительский идентификатор. Я хочу получить RootFolderID папки, которая добавляется в иерархию, как показано ниже.

FoldID ParentID |RootFolderID 
-----------------|------------------- 
1   0  | 0 
2   1  | 1 
3   2  | 1 
4   3  | 1 
5   4  | 1 

Пожалуйста, дайте мне знать, как получить корневой folderID и заполнить его в столбце RootFolderID после папка создается каждый раз.

Спасибо.

+0

Почему бы не получить FoldID с наименьшим значением и заполнить его как RootFolderID для всех * других * FoldID? –

ответ

2

Если вы знаете информацию родительской папки, корневая папка будет такой же, как и у родительского. или, если родитель не имеет корневой папки, корневая папка будет самой родительской папкой.

+0

У нас есть 100 основных папок и подпапок. Когда создается подпапка, нам нужно заполнить RootFolderID новой созданной папки. –

+0

да, я понимаю это. поскольку вы знаете, что представляет собой родительская папка только что созданной папки, вы можете получить корневую папку родительской папки. если это 0, то корневая папка только что созданной папки является идентификатором родительской папки. если это не 0, то корневая папка только что созданной папки совпадает с корневой папкой родительской папки. – oedo

+0

Да, хотите знать, как получить корневую папку родительской папки в новой созданной папке. Он должен зацикливаться до корня, а затем получить идентификатор. Pl сообщит мне запрос. –