De hecho, esto es anticuado sintaxis para CROSS JOIN. Equivalente formal:
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
La consulta no produce un producto cartesiano, sino que actúa como una unión interna. Esto se debe a que tiene un oculto referencia entre dos partes de join, en este caso alias t
. Este tipo de unión se conoce como LATERAL JOIN
. Para la documentación
:
Si una de las partes de una unión es una función, se trata como lateral por defecto.