我的桌子是
create table parents(
id integer,
name text,
parent_childs text);
create table childs(
parent_id integer,
name text);
数据:
insert into parents values (1, 'Mueller');
insert into childs values (1, 'Peter');
insert into childs values (1, 'Hans');
如何以格式选择此数据:
parent_name childs
------------------------
Mueller Peter, Hans
Bayer Anna, Petra, Max
我正在寻找一个简单的更新来编写来自父亲的一个父母条目中的孩子的所有名字。像父亲一样,像Peter,Hans一样。
答案 0 :(得分:2)
更新:
string_agg(expression, delimiter) - 输入值连接成一个字符串,用分隔符分隔
在你的情况下: -
childs.name
,
update parents
set parent_childs =t.cname
from(
select parent_id
,string_agg(childs.name,',') cname
from childs group by parent_id
)t
where t.parent_id=parents.id
如何以格式选择此数据:
parent_name childs ------------------------ Mueller Peter, Hans Bayer Anna, Petra, Max
试试这个:
select parents.name as parent_name
,string_agg(childs.name,',') childs
from childs
inner join parents on childs.parent_id=parents.id
group by parent_id,parents.name