Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
Sql Postgres仅返回基于非唯一列的第一个匹配项_Sql_Node.js_Postgresql - Fatal编程技术网

Sql Postgres仅返回基于非唯一列的第一个匹配项

Sql Postgres仅返回基于非唯一列的第一个匹配项,sql,node.js,postgresql,Sql,Node.js,Postgresql,我知道这个问题已经被问了好几次了,但似乎没有一个解决方案对我有效。我使用node postgres从一个有大量重复数据的数据库中获取数据。 这是我正在使用的查询,但它仍然返回重复项: var queryText = 'SELECT distinct on(kodartikulli) grupi, kodifikimartikulli2, pershkrimartikulli FROM products WHERE kodartikulli IN (' + params.join(',') +

我知道这个问题已经被问了好几次了,但似乎没有一个解决方案对我有效。我使用node postgres从一个有大量重复数据的数据库中获取数据。 这是我正在使用的查询,但它仍然返回重复项:

var queryText = 'SELECT distinct on(kodartikulli)  grupi, kodifikimartikulli2, pershkrimartikulli FROM products WHERE kodartikulli IN (' + params.join(',') + ')';
结果是:

[ anonymous { grupi: 'Syze Dielli', kodifikimartikulli2: 'Polar', pershkrimartikulli: 'POLAR 556 03' } ] [ anonymous { grupi: 'Syze Dielli', kodifikimartikulli2: 'Polar', pershkrimartikulli: 'POLAR 556 03' }, anonymous { grupi: 'Syze Dielli', kodifikimartikulli2: 'Polar', pershkrimartikulli: 'POLAR 558 01' } ] [匿名]{ grupi:“Syze Dielli”, kodifikimartikulli2:“极地”, pershkrimartikulli:'极地556 03'}] [匿名]{ grupi:“Syze Dielli”, kodifikimartikulli2:“极地”, pershkrimartikulli:'极地556 03'}, 匿名的{ grupi:“Syze Dielli”, kodifikimartikulli2:“极地”, pershkrimartikulli:“POLAR 558 01'}] 如您所见,前两个结果是相同的。我只想返回其中一个,然后继续第二个,如下所示:

[ anonymous { grupi: 'Syze Dielli', kodifikimartikulli2: 'Polar', pershkrimartikulli: 'POLAR 556 03' } ], anonymous { grupi: 'Syze Dielli', kodifikimartikulli2: 'Polar', pershkrimartikulli: 'POLAR 558 01' } ] [匿名]{ grupi:“Syze Dielli”, kodifikimartikulli2:“极地”, pershkrimartikulli:“POLAR 556 03'}], 匿名的{ grupi:“Syze Dielli”, kodifikimartikulli2:“极地”, pershkrimartikulli:“POLAR 558 01'}]
您缺少订购人:

SELECT distinct on(kodartikulli) grupi, kodifikimartikulli2, pershkrimartikulli
FROM products
WHERE kodartikulli IN (' + params.join(',') + ')' + '
ORDER BY kodartikulli;

这将为每个
kodartikulli
返回任意一行。通常情况下,有一个附加键指定要返回的行。

您选择的记录具有不同的
kodartikulli
。您应该向我们展示您的源数据,但这两条记录的kodartikulli肯定不同,这就是为什么两条记录都被提取的原因。

这不应该是
分组依据
?@joop。不可以。如果启用了
distinct,您希望使用
ORDER BY
。我的代码中有一个错误。现在,它显示了它应该显示的数据。不便之处,敬请原谅。