Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом / 4 сообщений из 4, страница 1 из 1
22.03.2021, 05:08
    #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
22.03.2021, 07:18
    #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
14.04.2021, 09:51
    #40062305
pakko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
нет идей?
...
Рейтинг: 0 / 0
16.04.2021, 00:20
    #40062916
per
per
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
pakko
нет идей?


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


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