実際、これは昔ながらの CROSSJOINの構文。正式な同等物:
SELECT
t.json_column->>'x',
nested->>'y'
FROM
my_table t
CROSS JOIN
json_array_elements(t.json_column->'nested') nested;
クエリはデカルト積を生成しませんが、内部結合のように機能します。これは、非表示があるためです。 結合の2つの部分の間の参照、この場合はエイリアスt
。この種の結合は、LATERAL JOIN
として知られています。 。 ドキュメント
の場合 :
結合の一部の1つが関数である場合、デフォルトでは横方向として扱われます。