powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
4 сообщений из 4, страница 1 из 1
Помогите с запросом
    #40055712
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Есть таблица tovar(x,xgr,name)
Родитель тоже из таблицы tovar
Надо вывести все позиции, у которых xgr или xgr.xgr или xgr.xgr.xgr.... и т.д. равен, скажем, 7
Т.е. вывести все элементы, что находятся в папке x=7
Подскажите, пожалуйста, как это сделать элегантно

PS Либо альтернативный вариант, чтобы select давал т.н. полный код. Полный код = xgr.xgr.xgr/xgr.xgr/xgr/x
Причем чем глубже элемент, тем больше дробей в полном коде.
...
Рейтинг: 0 / 0
Помогите с запросом
    #40055719
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам задал, сам нашёл.
Код: sql
1.
2.
WITH RECURSIVE tt AS (SELECT tov.* FROM tov WHERE x = 7 UNION SELECT tov.* FROM tov JOIN tt ON tov.xgr = tt.x)
SELECT * FROM tt


А теперь посложнее вопрос.
Товар храниться так:
самый первый родитель и второй родитель идут как папки сортировки. Нужно чтобы селект давал код и имя третьего родителя начиная с самого начала:
x,xgr3,gr3name,name
Т.е. первый уровень: xgr=0
Второй уровень xgr.xgr=0
НУЖНЫЙ третий уровень xgr.xgr.xgr=0
Уровней может быть много, нужен третий для каждого элемента.
...
Рейтинг: 0 / 0
Помогите с запросом
    #40062305
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет идей?
...
Рейтинг: 0 / 0
Помогите с запросом
    #40062916
per
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pakko
нет идей?


Есть, но вам понадобится кровь девственницы и безоаровый камень.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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