我想加入一个具有多行的表,并且需要将所有行中的一列合并为单列。
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分组,但获得多个记录(每个孩子一个记录)。除了分组以在单行中获得父母的所有孩子的子女之外,我在这里可以实现什么逻辑。
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