sql >> データベース >  >> RDS >> PostgreSQL

FROM句のPostgreSQLjson_array_elements-これがデカルト結合ではないのはなぜですか?

    実際、これは昔ながらの 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つが関数である場合、デフォルトでは横方向として扱われます。




    1. NUMBER(5)およびNUMBER(8,2)との違いを特定するUSER_TAB_COLUMNS

    2. マルチサーバー環境では、サイトの非アクティブ状態が15分を超えると、サーバーはPostgreSQLデータベースへの接続を失います。

    3. MySQLデータVB.NETからdatagridviewの特定の列に入力します

    4. ユーザー関数 t-SQL のメタデータの更新