Node/Postgres SQL选择不同的条目,然后将具有相同引用的所有其他条目放在一列中
这个问题可能是在什么地方被问到的,但在寻找准确答案的过程中,我似乎无法正确表达它 我正在对Postgres DB进行查询,它有很多连接,结果如下:Node/Postgres SQL选择不同的条目,然后将具有相同引用的所有其他条目放在一列中,sql,node.js,postgresql,Sql,Node.js,Postgresql,这个问题可能是在什么地方被问到的,但在寻找准确答案的过程中,我似乎无法正确表达它 我正在对Postgres DB进行查询,它有很多连接,结果如下: WON | name | item 1 Joe A 1 Joe B 2 Smith A 因此,每个条目对应一行,我需要以某种方式返回结果: WON | name | item 1 Joe A, B 2
WON | name | item
1 Joe A
1 Joe B
2 Smith A
因此,每个条目对应一行,我需要以某种方式返回结果:
WON | name | item
1 Joe A, B
2 Smith A
这可以在查询中完成,也可以使用NodeJS完成,查询有成百上千的结果,因此获取一个不同的行(WON 1),然后在数据库中搜索与之匹配的所有条目,然后重复搜索其余的条目是不可行的,因此这可能在Node/Javascript中完成得更好,但我对这一点有些陌生,这将是一个什么(稍微)这样做的有效方法是什么
如果在查询本身中有这样做的方法,那么这将是我的首选
谢谢您可以使用GROUP BY和cancat行,如下所示:
WON | name | item
1 Joe A
1 Joe B
2 Smith A
创建表:
CREATE TABLE test
(
won int,
name character varying(255),
item character varying(255)
);
insert into test (won, name, item) values (1,'Joe', 'A'),(1, 'Joe', 'B'),(2, 'Smith', 'A')
并在查询中执行以下操作:
select won, name, string_agg(item, ',') from test group by won, name order by won
请参见sql方法中的此示例:
SELECT won, name
,STRING_AGG(item, ',' ORDER BY item) AS items
FROM myTable
GROUP BY won, name
ORDER BY won, name
只是为了将来。这称为字符串连接。可能有助于解决类似问题。