返回与一行具有相同 id 的值

时间:2021-07-12 00:22:55

标签: sql postgresql

抱歉,如果有人回答了这个问题,但试图说出这个问题是让我头疼的噩梦。

基本上我有一张桌子

<头>
post_id tag_id
15618 6
15618 109
15618 659
27248 245
27248 6
27248 7
27248 6499

我本质上想要一个返回的查询

<头>
post_id tag_id
15618 6, 109, 659
27248 245, 6, 7, 6499

1 个答案:

答案 0 :(得分:2)

我强烈建议您为此目的使用数组:

select post_id, array_agg(tag_id order by tag_id)
from t
group by post_id;

如果你真的想要一个字符串,你可以使用 string_agg(tag_id, ', ' order by tag_id)。不过,总的来说,我发现数组的用途要广泛得多。