Utiliser la clause UNNEST
La clause UNNEST est utilisée pour désimbriquer un tableau imbriqué et effectuer une jointure entre elle et son tableau parent.
FROM parent_expression UNNEST child_expression
Vous pouvez utiliser les mots-clés AS et INDEX dans la clause UNNEST. Vous pouvez également avoir plusieurs clauses UNNEST consécutives.
Lors de l'utilisation d'une ou de plusieurs clause·s UNNEST sans alias, tous les identifiants utilisés dans la requête sans chemin absolu sont traités comme étant relatifs à l'identifiant dans la dernière clause UNNEST ou à sa clause parente si un identifiant dans la requête ne fait pas partie de la dernière clause.
{
"customers":[
{
"name":"John Smith",
"orders":[
{
"id":"abc-12345",
"items":[
{
"id":"97516848-jiargn",
"quantity":2
}
]
}
]
},
{
"name":"Jane Doe",
"orders":[
{
"id":"def-12345",
"items":[
{
"id":"97516848-kftesn",
"quantity":3
},
{
"id":"96946848-metasb",
"quantity":1
}
]
}
]
}
]
}
FROM customers UNNEST orders AS o UNNEST items AS i
SELECT {
customer_name = name,
order_id = o.id,
item_id = i.id,
item_quantity = quantity
}
[
{
"customer_name":"John Smith",
"order_id":"abc-12345",
"item_id":"97516848-jiargn",
"item_quantity":2
},
{
"customer_name":"Jane Doe",
"order_id":"def-12345",
"item_id":"97516848-kftesn",
"item_quantity":3
},
{
"customer_name":"Jane Doe",
"order_id":"def-12345",
"item_id":"96946848-metasb",
"item_quantity":1
}
]
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !