Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

Вопрос скорее алгоритмический, но...   Найти похожие ветки 

 
DmitryNekl   (2005-09-30 01:39) [0]

Здравствуйте, мастера! Надеюсь на Вашу помощь.

Есть таблица cat, хранящая дерево (для определенности - каталог товаров): cat_id, cat_name, cat_pid (cat_pid - cat_id родителя). Например:
дерево
     0
 1      2
3 4   5 6

описывается таблицей
0, "0", null
1, "1", 0
2, "2", 0
3, "3", 1
4, "4", 1
5, "5", 2
6, "6", 2

Есть также таблица goods с товарами: id, name, cat_id. Пусть там содержатся значения:
1, Товар_1, 3
2, Товар_2, 3

Нужно отобрать только такие записи из таблицы cat, которые на конечных узлах поддерева содержат товары (т.е. выбросить все узлы, которые сами не содержатся в поле goods_id и ни один из потомков их тоже не содержится). В нашем примере нужно отобрать строки с cat_id=0, 1, 3

Вот как это сделать - мозгов не хватает.
Заранее спасибо.


 
ЮЮ ©   (2005-09-30 03:30) [1]

>В нашем примере нужно отобрать строки с cat_id=0, 1, 3
>1, Товар_1, 3
>которые сами не содержатся в поле goods_id

требование противоречит условию


 
DmitryNekl   (2005-09-30 09:58) [2]

Требование не противоречит условию, поскольку содержатся потомки узлов 0 и 1. Условие можно переформулировать: в таблице goods должен содержаться либо сам узел, либо хотя бы один из его потомков.



Страницы: 1 вся ветка

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
14-1128433357
Trigun
2005-10-04 17:42
2005.10.23
Проведение выделенки. Есть ли подводные камни в быстром потоке?


3-1126690359
Трушик
2005-09-14 13:32
2005.10.23
Экспорт информации из базы данных в Excel


14-1126789705
Igorek
2005-09-15 17:08
2005.10.23
Журнал "Хакер"


1-1128328806
Иванов__
2005-10-03 12:40
2005.10.23
Можно ли отлаживать DLL вызываемую в другой проге?


14-1128316032
Тульский
2005-10-03 09:07
2005.10.23
Файервол для среднего пользователя