Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Zhur
- Сообщения: 125
- Зарегистрирован: 01 мар 2006, 18:17
Сообщение
Zhur » 28 апр 2006, 12:59
Добрый день.
Вот... мозгов не хватает домыслить такую ситуацию:
Имеется таблица HIERARCHI(ID INTEGER,NAME VARCHAR(100), HIGH_ID INTEGER)
и таблица PERSON (ID INTEGER, HIERARCHI INTEGER).
В таблице PERSON имеется FK на HIERARCHI.ID.
В таблице HIERARCHI также имеется FK на HIERARCHI.ID (эта же таблица). Таким образом в HIERARCHI достигается иерархия записей до бесконечной вложенности.
Нужно выбрать все записи из PERSON таким образом, что бы PERSON.ID, что бы либо IERARCHI.ID=:VALUE, либо IERARCHI.HIGH_ID=:VALUE и так далее.
Например
SELECT * FROM PERSON P INNER JOIN HIERARCHI H ON P.HIERARCHI=H.ID WHERE (H.ID=:VALUE OR H.HIGH_ID=:VALUE OR ???)
... то есть ??? - это то что я и не знаю как надо сделать... что бы пробежаться с проверкой по всей иерархии.
Фу-у-у... даже пока писАл это мог запутаться.
Вот такая, блин, загвоздка.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 28 апр 2006, 13:08
процедурой. см. на сайте статьи по древовидным структурам.
-
Zhur
- Сообщения: 125
- Зарегистрирован: 01 мар 2006, 18:17
Сообщение
Zhur » 28 апр 2006, 13:11
kdv писал(а):процедурой. см. на сайте статьи по древовидным структурам.
Спасибо... щас загляну
-
Zhur
- Сообщения: 125
- Зарегистрирован: 01 мар 2006, 18:17
Сообщение
Zhur » 28 апр 2006, 13:35
Zhur писал(а):kdv писал(а):процедурой. см. на сайте статьи по древовидным структурам.
Спасибо... щас загляну
Отличные статьи... Спасибо еще раз.
-
Zhur
- Сообщения: 125
- Зарегистрирован: 01 мар 2006, 18:17
Сообщение
Zhur » 28 апр 2006, 14:18
Zhur писал(а):Zhur писал(а):kdv писал(а):процедурой. см. на сайте статьи по древовидным структурам.
Спасибо... щас загляну
Отличные статьи... Спасибо еще раз.
Да... в точку... то, что надо.