gpt4 book ai didi

postgresql - 如何过滤 JSONB 列表

转载 作者:行者123 更新时间:2023-11-29 13:23:20 24 4
gpt4 key购买 nike

我有包含这些数据的表格:

id       | 1
accounts | [{"id": "100", "properties": [{"id": "PR-001", "name": "name1"}, {"id": "PR-002", "name": "name2"}]}]
property | "PR-001"

accounts是jsonb字段。

我需要使用 SELECT 获取所有 property.name,其中 accounts.property.id 等于属性。

我正在使用 Postgres 9.5

最佳答案

您可以使用 LEFT LATERAL JOIN:

WITH tbl (id,accounts,property) AS (
SELECT 1, '{"id": "100", "properties": [{"id": "PR-001", "name": "name1"}, {"id": "PR-002", "name": "name2"}]}'::jsonb, 'PR-001'::text
)
SELECT t.id, acc->>'name'
FROM tbl t
LEFT JOIN LATERAL jsonb_array_elements(t.accounts->'properties') acc ON (acc->>'id' = t.property)

关于postgresql - 如何过滤 JSONB 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37971139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com