En fait c'est à l'ancienne syntaxe pour CROSS JOIN. Équivalent formel :
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
La requête ne produit pas de produit cartésien mais agit plutôt comme une jointure interne. C'est parce qu'il a un caché référence entre deux parties de jointure, dans ce cas alias t
. Ce type de jointure est appelé LATERAL JOIN
. Pour la documentation
:
Si l'une des parties d'une jointure est une fonction, elle est traitée comme latérale par défaut.