gpt4 book ai didi

arrays - Postgres - 无法加入 UUID 上的 Json 数组值

转载 作者:行者123 更新时间:2023-11-29 12:39:29 25 4
gpt4 key购买 nike

所以我有一张表Profession:

UUID UUID,
Name TEXT

其中 UUIDuuid1、uuid2、uuid3 等

然后是另一个表Degrees:

 DegreeName TEXT,
Record JSON

其中Record->'Professions' json记录可能包含Profession.uuid列表,例如{"Professions":"[uuid1, uuid2]"},尽管该字段可以是 NULL,例如 {"Professions":"[]"}

下面是我尝试连接两个表的方式:

SELECT prof.uuid, prof.Name, d.DegreeName

FROM Profession prof
LEFT JOIN (
SELECT DegreeName, json_array_elements(Record->'Professions') prof_uuid
FROM Degrees
) d
ON d.prof_uuid::TEXT=prof.uuid::TEXT

当我这样做时,我只会得到空值。请注意,我转换为 TEXT 是因为我无法将 Professions 数组转换为 UUID 因为空白。

我已经尝试使用 Professions 列表中的值手动搜索 Profession 表,它有效:

SELECT *
FROM Profession
WHERE uuid = 'someprofuuid'

我缺少一些类型转换吗?

最佳答案

我想通了。问题是我使用的是 json_array_elements 而不是 json_array_elements_text。当我切换它时,连接起作用了:

SELECT prof.uuid, prof.Name, d.DegreeName

FROM Profession prof
LEFT JOIN (
SELECT DegreeName, json_array_elements_text(Record->'Professions') prof_uuid
FROM Degrees
) d
ON d.prof_uuid::TEXT=prof.uuid::TEXT

关于arrays - Postgres - 无法加入 UUID 上的 Json 数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58158444/

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