我想加入一个包含多行的表,需要将所有行中的一列合并为单列。
select a.parent_id,a.parent_name,concat(b.child_name) from parent a
join children b on (a.parent_id=b.parent_id);
这应返回所有父行,每个父行应该包含其所有子行。
我想用parent_id分组,但获得多条记录(每个孩子一条记录)。我可以在这里实现什么逻辑,除了分组以获得单行父母的所有孩子。
答案 0 :(得分:1)
SELECT a.parent_id, a.parent_name, STRING_AGG(b.child_name, ',') as Children
FROM
Parent a
INNER JOIN children b
ON a.Id = b.ParentId
GROUP BY
a.parent_id
,a.parent_name