当我有一个存储在JSONB中的数组时,我正在努力处理连接的语法。我搜索了一些例子,但是我找不到在PostgreSQL 9.6中使用这个工具的魔法酱。我有一个名为disruption_history
的表,在JSONB列中存储了以下结构。该元素被称为data
:如何在PostgreSQL中使用JSONB数组结构执行连接
"message": {
"id": 352,
"preRecordedMessageList": {
"preRecordedMessageCodes": [804, 2110, 1864, 1599]
}
}
我再有另一个标准表称为message_library
component_code | integer | not null
message_text | character varying(255) | not null
我试图为每个组的消息代码的文本。因此,像
SELECT
ml.message_text
FROM
message_library ml, disruption_history dh
WHERE
jsonb_array_elements_text(dh.data->'message'->'preRecordedMessageList'
->'preRecordedMessageCodes')) = ml.component_code
我得到
ERROR: operator does not exist: text = integer
即使我尝试投的数字为整数,我得到的WHERE
参数不能返回一个集合。
有人可以帮忙吗?
不知道这是否重要,但在最后一行有一个额外的右括号。 –