我正在使用 PostgreSQL 9.4 和一个teams
包含jsonb
名为json
. 我正在寻找一个查询,我可以在其中获取所有拥有 Players 的球队3
,4
以及7
他们的球员数组。
该表包含两行,其中包含以下json
数据:
第一排:
{
"id": 1,
"name": "foobar",
"members": {
"coach": {
"id": 1,
"name": "A dude"
},
"players": [
{
"id": 2,
"name": "B dude"
},
{
"id": 3,
"name": "C dude"
},
{
"id": 4,
"name": "D dude"
},
{
"id": 6,
"name": "F dude"
},
{
"id": 7,
"name": "G dude"
}
]
}
}
第二行:
{
"id": 2,
"name": "bazbar",
"members": {
"coach": {
"id": 11,
"name": "A dude"
},
"players": [
{
"id": 3,
"name": "C dude"
},
{
"id": 5,
"name": "E dude"
},
{
"id": 6,
"name": "F dude"
},
{
"id": 7,
"name": "G dude"
},
{
"id": 8,
"name": "H dude"
}
]
}
}
查询必须如何才能获得所需的团队列表?我尝试了一个查询,我将从成员玩家创建一个数组jsonb_array_elements(json -> 'members' -> 'players')->'id'
并比较它们,但我所能完成的只是一个结果,其中任何比较的玩家 ID 在团队中可用,而不是全部可用。