из другой таблицы?
Есть примерно такая структура:
create table test (
id serial primary key,
f jsonb
);
insert into test(f) values('{"values": [{"id": 1}, {"id": 3}]}');
create table test2 (
id int primary key,
value varchar(10)
);
insert into test2(id, value) values(1, 'one'), (2, 'two'), (3, 'three');
Надо в таблице test для каждого id сохранить еще и значение, его надо брать из таблицы test2 where test2.id=values.id
Пока думаю в сторону разложить весь список, сделать джоин, группировку, потом как-то обновить, но пока и это не выходит, возможно вообще не в том направлении иду?
Что-то вроде такого? https://sqlize.online/sql/psql15/cc338fc478fdd5ab323a05c9e63d183f/
да, почти, можете еще помочь объединить итоговые jsonb от одной строки? чтобы получить {"values": [{"id": 1, "value": "one"}, {"id": 3, "value": "three"}]}
Да, не учёл это Проще тогда разобрать и пересобрать https://sqlize.online/sql/psql15/9b68b676eb389033b49aa0be2b086cfb/
я пока реализовал через такой примерно запрос update test set f=set_json(f, ..) from (select * from test2) sq where f#>'{0,id}'=sq.id только надо несколько раз запрос выполнять для всех вариантов количества элементов
Обсуждают сегодня