【发布时间】:2022-07-02 08:56:43
【问题描述】:
我在 Postgres jsonb 字段中有这样的数据。每个工人可以有多个电话号码。工人可以有或没有工作的电话。工作的电话号码可以是数组中的第一个或最后一个(不排序)。
INSERT INTO "contacts" ("id", "json") VALUES
(101, '
{
"add-date": "2022-06-04",
"workers": [
{
"name": "Alex",
"phones": [
{ "type": "HOME", "number": 926117171 },
{ "type": "WORK", "number": 916100203 },
{ "type": "CELL", "number": 911463212 }
]
},
{
"name": "Maria",
"phones": [
{ "type": "HOME", "number": 919351948 },
{ "type": "WORK", "number": 915532355 }
]
}
]
}
'),
(102, '
{
"add-date": "2022-06-05",
"workers": [
{
"name": "Pablo",
"phones": [
{ "type": "CELL", "number": 913456719 }
]
},
{
"name": "Nina",
"phones": [
{ "type": "WORK", "number": 915532321 },
{ "type": "CELL", "number": 919455354 }
]
}
]
}
');
我需要选择并显示有工作编号的工人表,如下所示:
Alex | 916100203
Maria | 915532355
Nina | 915532321
我只能在 Postresql 中使用 SQL+jsonb 查询吗?如何做?
【问题讨论】:
-
使用适当的规范化数据模型会容易得多。
标签: sql json postgresql jsonb