SELECT q.id, d.key, d.value
FROM q
JOIN json_each_text(q.data) d ON true
ORDER BY 1, 2;
関数json_each_text() は集合を返す関数なので、行ソースとして使用する必要があります。関数の出力はここにありますqへ 、つまり、テーブルの各行について、各(key, value) dataからのペア 列はその行にのみ結合されるため、元の行とjsonから形成された行との関係 オブジェクトは維持されます。
テーブルq 非常に複雑なサブクエリ(またはVALUES)になることもあります。 あなたの質問のように、条項)。関数では、そのサブクエリの評価結果から適切な列が使用されるため、サブクエリのエイリアスとサブクエリの(のエイリアス)列への参照のみを使用します。