當我有一個存儲在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
參數不能返回一個集合。
有人可以幫忙嗎?
不知道這是否重要,但在最後一行有一個額外的右括號。 –