W rzeczywistości jest to staromodne składnia CROSS JOIN. Formalny odpowiednik:
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
Zapytanie nie tworzy iloczynu kartezjańskiego, ale działa raczej jak sprzężenie wewnętrzne. Dzieje się tak, ponieważ ma ukryty referencja między dwiema częściami złączenia, w tym przypadku alias t
. Ten rodzaj łączenia jest znany jako LATERAL JOIN
. dokumentacja
:
Jeśli jedna z części złączenia jest funkcją, jest domyślnie traktowana jako boczna.