|
|
|
Дерево, с ограничениями...
|
|||
|---|---|---|---|
|
#18+
Есть дерево, которое храниться с помощью 2-х таблиц - Good(id, name, groupID) & Groups(id, name) и есть еще одна таблица CustomerGoods(id, cust_id, good_id)... как выбрать только те группы, у которых есть товары( при этом наличие товаров смотриться CustomerGoods), сохраняя иерархию? тут трабл в том, что группа может и не иметь товара, но вложенная в нее группа имеет... те мб так Код: plaintext 1. 2. 3. соотв нужно выбрать обе группы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2003, 08:52 |
|
||
|
Дерево, с ограничениями...
|
|||
|---|---|---|---|
|
#18+
1. Дерево должно храниться в одной таблице. 2.connect by IB не поддерживает -> а) написать хранимую процедуру или б) создать служебное поле "количество потомков", которое заполнять триггером при добавлении нового товара(тогда группы можно будет достать селектом). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2003, 09:44 |
|
||
|
Дерево, с ограничениями...
|
|||
|---|---|---|---|
|
#18+
Моку предложить вариант (у меня подобная задача стояла в системе безопасности), сперва производим разбор дерева классический, а потом полученный набор данных фильтруем по нужным условиям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2003, 09:52 |
|
||
|
Дерево, с ограничениями...
|
|||
|---|---|---|---|
|
#18+
у меня примерно такая идея - сначала выбираем все группы, имеющие товары... Код: plaintext 1. потом выбираем группы, являющиеся предками, для предыдущих... и т.д. Код: plaintext 1. 2. вот только как это сдалать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2003, 09:56 |
|
||
|
Дерево, с ограничениями...
|
|||
|---|---|---|---|
|
#18+
так я вообще-то уже предложил....\r разбор тут\r ну а в темповой таблице я думаю удаление ненужных строк сможешь и сам написать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2003, 09:57 |
|
||
|
Дерево, с ограничениями...
|
|||
|---|---|---|---|
|
#18+
А по поводу твоей мысли, это можно ТОЛЬКО при условии что нужно проработать всю таблицу. На практике возникает чаще, что известен некоторый корень и от него нужно плясать. Тогда твой алгоритм будет медленным, так как придется переваривать всю таблицу и не раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2003, 10:02 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=521&tid=1580638]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 319ms |

| 0 / 0 |
