Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Postgresql 在Postgres中的jsonb_数组_元素_文本函数中使用SELECT sub查询_Postgresql_Subquery_Psql_Jsonb - Fatal编程技术网

Postgresql 在Postgres中的jsonb_数组_元素_文本函数中使用SELECT sub查询

Postgresql 在Postgres中的jsonb_数组_元素_文本函数中使用SELECT sub查询,postgresql,subquery,psql,jsonb,Postgresql,Subquery,Psql,Jsonb,我有以下疑问 SELECT DISTINCT ON (user_id) user_id, timestamp FROM entries WHERE user_id in (1,2) AND entry_type IN( SELECT jsonb_array_elements_text( SELECT entry_types FROM users INNER JOIN orgs ON org_id = orgs.id WHERE users.id = 1

我有以下疑问

SELECT DISTINCT ON (user_id) user_id, timestamp
FROM entries 
WHERE user_id in (1,2)
AND entry_type IN(
  SELECT jsonb_array_elements_text(
    SELECT entry_types 
    FROM users INNER JOIN orgs
    ON org_id = orgs.id 
    WHERE users.id = 1
  )
);
我在select或其附近遇到语法错误

“选择”第1行或其附近出现语法错误:。。。输入(选择 jsonb_数组_元素_文本(select)

字段条目_types是一个JSONB字段,因此我试图将其转换为文本,以便在WHERE in子句中使用它

PostgreSQL 13.0

此子查询位于jsonb_数组_元素_文本中

SELECT entry_types 
    FROM users INNER JOIN orgs
    ON org_id = orgs.id 
    WHERE users.id = 1
返回单个JSONB条目,如下所示:

                entry_types                     
--------------------------------------------  
["type1", "type2", "type3"]

我只是尝试使用返回的文本值数组作为WHERE IN子句中的条件。

语法错误似乎指向其他地方,因此可能我错了,但我看到的问题是子查询周围缺少一对括号:

jsonb_array_elements_text((SELECT ...))

请提供示例数据、所需结果以及查询目的的解释。这并不明显。@GMB我添加了一些细节,请告诉我是否足够。