Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Составить запрос, может и классический / 2 сообщений из 2, страница 1 из 1
28.12.2007, 07:58
    #35039051
J.Me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос, может и классический
Может кто-то поможет чем сможет...

Имеется: 3 таблицы
1. Каталоги (catalog): организованные в виде дерева, корневые каталоги имеют идентификатор предка 0
id - идентификатор каталога
name - наименование каталога
parent - идентификатор предка каталога

2. Библиотеки (bibls):
id - идентификатор библиотеки
name - наименование библиотеки

3. Книги (books):
id - идентификатор книги
catalog - идентификатор каталога в котором хранится книга
bibls - идентификатор библиотеки
name - наименование книги

Существует такая особенность, что каталоги вкладываются друг в друга, но книги хранятся только конечном узле каталогов. Например:
id | name | parent
1 | Классика | 0
2 | Современники | 0
3 | Поэзия | 1
4 | Детективы | 2
5 | Романы | 2
6 | Зарубежная | 4

Количество вложенных каталогов неопределенно.
Необходимо подсчитать количество книг во всех корневых каталогах, т.е. у которых parent = 0 для определённой библиотеки. Т.е. надо получить набор записей с полями идентификатора корневого каталога и количество книг во всех конечных узлах этого каталога.
Ищутся оптимальные решения. Может кто-то что-то подскажет. Принимаются любые решения... С добавлением каких-то полей, с применением каких-то триггеров или функций...
...
Рейтинг: 0 / 0
28.12.2007, 08:03
    #35039055
Бабичев Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос, может и классический
STFF иерархические зарпосы
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Составить запрос, может и классический / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]