首页 > 解决方案 > 返回与一行相同 id 的值

问题描述

抱歉,如果这个问题已经得到解答,但试图说出这个问题是让我头疼的噩梦。

基本上我有一张桌子

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

标签: sqlpostgresql

解决方案


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

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)不过,总的来说,我发现数组更加通用。


推荐阅读