我希望我的子查询结果(多行)在查询中作为单行返回。 例如。
select u.url, (select c.categoryid from category c
where c.categoryid = u.categoryid) from url u
如果url包含多个类别,则子查询将返回以下多行
大多数数据库不支持PS子查询返回多行,但是PostgreSQL
url | categoryid
---------------------
1 | 1
1 | 2
2 | 1
我想要的结果如下
url | categoryid
---------------------
1 | 1,2
2 | 1
我不确定在其他数据库(如oracle或mysql)中可以实现多容易,但是PostgreSQL提供了Array数据类型,使用array可以很容易地得到我想要的。 我必须将查询更改为
select u.url, (select array(select c.categoryid from category c
where c.categoryid = u.categoryid))as categoryid from url u
结果〜
url | categoryid
---------------------
1 | {1,2}
2 | 1
完成〜PostgreSQL Array Rock〜
标记: PostgreSQL SQL
翻译自: https://mkyong.com/database/convert-subquery-result-to-array/