Ve skutečnosti je to staromódní syntaxe pro CROSS JOIN. Formální ekvivalent:
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
Dotaz nevytváří kartézský součin, ale funguje spíše jako vnitřní spojení. Je to proto, že má skryté odkaz mezi dvěma částmi spojení, v tomto případě alias t
. Tento druh spojení je známý jako LATERAL JOIN
. Pro dokumentaci
:
Pokud je jednou z částí spojení funkce, je ve výchozím nastavení považována za laterální.