Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node/Postgres SQL选择不同的条目,然后将具有相同引用的所有其他条目放在一列中_Sql_Node.js_Postgresql - Fatal编程技术网

Node/Postgres SQL选择不同的条目,然后将具有相同引用的所有其他条目放在一列中

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

这个问题可能是在什么地方被问到的,但在寻找准确答案的过程中,我似乎无法正确表达它

我正在对Postgres DB进行查询,它有很多连接,结果如下:

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

只是为了将来。这称为字符串连接。可能有助于解决类似问题。