PostgreSQL数据库表与自定义数组执行INNER JOIN查询失效问题咨询
问题根因
PostgreSQL 不支持直接将数组类型的变量或值作为表数据源放在JOIN子句中,你需要先使用unnest()函数将数组展开为行结构的结果集,才能和数据库表做关联查询。
正确写法示例
假设你准备的aLocalArray是存储id值的一维数组,格式为ARRAY[1,2,3,4],修改后的查询语句如下:
SELECT * FROM custom_test AS dbtable INNER JOIN unnest(aLocalArray) AS localtable(id) ON dbtable.id = localtable.id
语法说明
unnest(aLocalArray)的作用是把一维数组拆分为多行,每行对应数组中的一个元素- 语句中的
AS localtable(id)是给展开后的结果集设置别名,同时给结果集的唯一列指定列名为id,保证关联条件可以正常匹配 - 如果你使用的是多维数组,需要先做降维处理后再用
unnest展开
内容的提问来源于stack exchange,提问作者VASUNDHARA LELLA
相关产品推荐
相关产品推荐

