consulta jsonb con objetos anidados en una matriz
Estoy usando PostgreSQL 9.4 con una tablateams
que contiene unjsonb
columna llamadajson
. Estoy buscando una consulta donde pueda obtener todos los equipos que tienen los jugadores3
, 4
y7
en su variedad de jugadores.
La tabla contiene dos filas con lo siguientejson
datos:
Primera fila:
{
"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"
}
]
}
}
segunda fila:
{
"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"
}
]
}
}
¿Cómo debe ser la consulta para obtener la lista deseada de equipos? He intentado una consulta donde crearía una matriz de los jugadores miembrosjsonb_array_elements(json -> 'members' -> 'players')->'id'
y compararlos, pero todo lo que pude lograr es un resultado en el que cualquiera de los ID de jugador comparados estaba disponible en un equipo, no todos.