在 Postgres 的 jsonb_array_elements_text 函数中使用 SELECT 子查询
Using SELECT sub-query inside jsonb_array_elements_text function in Postgres
我有以下查询
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
处或附近遇到语法错误
syntax error at or near "select" LINE 1: ... entry_type in( select
jsonb_array_elements_text(select ent.
字段 entry_types 是一个 JSONB 字段,因此我试图将其转换为文本以便在 WHERE IN 子句中使用它。
PostgreSQL 13.0
此子查询在 jsonb_array_elements_text
内
SELECT entry_types
FROM users INNER JOIN orgs
ON org_id = orgs.id
WHERE users.id = 1
Returns 像这样的单个 JSONB 条目:
entry_types
--------------------------------------------
["type1", "type2", "type3"]
我只是想使用那里返回的文本值数组作为 WHERE IN 子句中的条件。
语法错误似乎指向其他地方,所以也许我错了,但我看到的问题是子查询周围缺少一对括号:
jsonb_array_elements_text((SELECT ...))
我有以下查询
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
处或附近遇到语法错误syntax error at or near "select" LINE 1: ... entry_type in( select jsonb_array_elements_text(select ent.
字段 entry_types 是一个 JSONB 字段,因此我试图将其转换为文本以便在 WHERE IN 子句中使用它。
PostgreSQL 13.0
此子查询在 jsonb_array_elements_text
内SELECT entry_types
FROM users INNER JOIN orgs
ON org_id = orgs.id
WHERE users.id = 1
Returns 像这样的单个 JSONB 条目:
entry_types
--------------------------------------------
["type1", "type2", "type3"]
我只是想使用那里返回的文本值数组作为 WHERE IN 子句中的条件。
语法错误似乎指向其他地方,所以也许我错了,但我看到的问题是子查询周围缺少一对括号:
jsonb_array_elements_text((SELECT ...))