2013-10-12 3 views
1

У меня есть некоторые категории, но некоторые из них имеют подкатегории. Итак, у меня есть Дерево.Загрузка дерева из базы данных

Я создал таблицу, которая называлась Категории. Поле id поле является первичным ключом, другое поле - PARENTID, который является внешним ключом, на который ссылается id (Чтобы сделать его иерархическим). вы можете иметь представление данных здесь

enter image description here

Я собираюсь задать определенный идентификатор и запрос дает мне идентификатор «ы этой категории и все суб-категории. У меня есть красный this и this one, но ни один из них не является полезным.

еще один момент: я не прошу вас написать запрос для меня. Я просто ищу некоторые подсказки

+1

Посмотрите на рекурсивные CTE. На самом деле подумайте об этом, вы не указали, какой вкус SQL вы используете ... – Aron

+1

Какую базу данных вы используете? Если вы используете рекурсивный CTE SQL Server, это сделает. – Miller

+5

@MillerKoijam: Это не «специальность» SQL Server. Postgres, Firebird, Oracle, Teradata, DB2 и Cubrid также поддерживают рекурсивные запросы. –

ответ

0

Я предлагаю два варианта.

1) указать ваш выбор, чтобы включить вложенные курсоры,

select column1, cursor(select * form table2) as cursorOfTable2 from table1 

, а затем в коде среднего уровня, вы можете ссылаться на вспомогательный курсор, реализация варьируется в зависимости от того, что ваш средний ярус (j2ee,. сеть, ...)

2) указать дочерние отношения родителя в пределах вашего выбора

select a.id as parentId, b.id as child_id, from table1 a, table2 b 
where a.id = b.parentId 

А потом снова в вашем коде среднего уровня вы можете создать родительский с hild с этими данными.

желающий это имеет смысл.

+0

Спасибо. У вас есть связанная ссылка, которая содержит больше объяснений? – Salman

+0

Что бы вы хотели объяснить? – Sumit

Смежные вопросы