In feite is dit ouderwets syntaxis voor CROSS JOIN. Formeel equivalent:
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
De query levert geen cartesiaans product op, maar werkt eerder als een inner join. Dit komt omdat het een verborgen . heeft verwijzing tussen twee delen van join, in dit geval alias t
. Dit soort join staat bekend als LATERAL JOIN
. Voor de documentatie
:
Als een van de onderdelen van een join een functie is, wordt deze standaard als lateraal behandeld.