|
10 Кб. |
|
| Имеется таблица CLIENT_CARDS_TBL
там как для тривью имеются данные о клиентах
1 карточка - над ней никого под ней 2,4,7
2 карточка - над ней 1 , под ней 5 и 6
и т. д.
Возможно ли создать запрос.
Где условие отбора например = карта № 2
результат показ всех карт этой ветки.
а именно карты 2, 3, 5, 6, 8, 9
===========================
Или всё же не возможно......... | |
|
| |
|
|
|
| Ты имеешь ввиду всех подчиненных, даже те которые подчинены не на прямую а через детей?
Обычно использую доп. поле содержащее полный путь к данному узлу состоящий из кодов всех родителей.
т.е.
для узла 2
1~2
для твоего случая у узла 5 это поле будет равно
1~2~5
для узла 6
1~2~6
что бы отобрать все узлы подчиненные узлу 2 вместе с потомками потомков делаешь запрос с like или left (на выбор)
where left(FullPath,len("1~2")) = "1~2")
идея понятна? | |
|
| |
|
|
|
| идея - понятна
================
делаем доп поле FullPath - туда ...туда мы ........
в момент создания детей записываем родословную, пополняя уже имеющиеся данные с разделителем например "~".
===========================================
затем делаем запрос с условием по этому полю - чтоба первое звено цепи было = условию отбора.....
=======================================
А что будет если условие отбора -=5
| |
|
| |
|
|
|
| Условие отбора должно быть равно полному пути того узла для которого отбираем всех подчиненных. | |
|
| |
|