Помогите решить проблему.
Есть БД. В которой реализуется древовидная структура
Назовем таблицу Table1
поля
ID
ParentID
Pole1
..
PoleN
Логически дочерняя запись ссылается на родителя указывая его ID в поле ParentID
Есть другая таблица, в которой содержатся переодически пополняемые данные.
Назовем Table2
Поля
LinkID - ссылка на первую таблицу для задания связи типа N:1
Pole2_1
...
Pole2_N
Проблема заключается в следующем. Нужно сделать выборку по таблицам, с условием
для всех записей таблицы Table2 (Table2.Pole2_2>=константа1) - базовое условие, например данные интересуют после определенной даты
and (Table2.Pole2_1>0) - дополнительное условие, данные отличны от нуля
по этим данным нужно найти запись в родительской таблице. (В этом ничего сложного для меня пока нет)
А дальше в результирующую выборку должны попасть ВСЕ родительские записи по ссылкам ParentID даже, если условия (Table2.Pole2_2>=константа1) and (Table2.Pole2_1>0) не выполняются. И самое главное что должна быть построена вся цепочка родительских записей, т.е. должно получиться что-то подобное:
- Название Pole1 Pole2 .....
Запись1 0 13.05.2011 .....
Запись2 0 13.05.2011
Запись3 1 13.05.2011 - записи относящиеся к одному родителю
Запись31 4 13.05.2011
Запись4 2 13.05.2011
Запись5 2 13.05.2011
Запись6 5 13.05.2011
Запись7 0 13.05.2011
Запись8 1 13.05.2011
Подскажите, пожалуйста, можно ли сделать такой запрос средствами SQL (хранимыми процедурами?) или другим способом, но именно на стороне БД.
Надеюсь, что понятно объяснил суть.
Спасибо.