Главная страница
    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.44 MB
Время: 0.038 c
1-1128237120
тт
2005-10-02 11:12
2005.10.23
Как програмно создать Word-документ и вставить рисунок по центру?


14-1127900866
Beks
2005-09-28 13:47
2005.10.23
CHM


2-1128149617
SHTrassEr
2005-10-01 10:53
2005.10.23
Помогите найти родителя!!!


3-1126530501
naz
2005-09-12 17:08
2005.10.23
Temporary table


14-1127996007
Kolan
2005-09-29 16:13
2005.10.23
Забавная клавиатура.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский