将结果合并到JSON对象中

ddibiase

我想知道是否可以将结果列表作为JSON对象返回。我的查询比下面的查询更复杂,但为简单起见,请表达我的目标。

SELECT 
    r.name, r.address
FROM "Locations" AS r 
LEFT JOIN "Units" AS f 
    ON r.city = f.city

每个位置有许多潜在的单位,但最好是将其作为JSON而不是修改我的完整表结构而返回。

因此,我正在寻找的响应是每个位置都有一行的列:名称(字符串),地址(字符串)和单位(表示所有行的JSON)。

在MySQL中这是永远不可能的,想知道我是否可以在Postgres中做到这一点。JSONd的数据不会很大,因此我不太在意性能。

克雷格·林格(Craig Ringer)

您将想要类似的东西:

SELECT 
    json_build_object(
      'name', r.name,
      'address', r.address,
      'units', json_agg( json_build_object(
        'number', f.number,
        -- etc etc fields of units here
      ))
    )
FROM "Locations" AS r 
LEFT JOIN "Units" AS f 
    ON r.city = f.city
GROUP BY r.id;

由于没有提供架构,样本数据,预期输出等,因此很难完全确定。

请注意,您不能嵌套json_agg呼叫。对于存在多个连接级别的多级别结果,需要使用不同的方法。如果担心的话,请尝试提供一些可以更好地反映您的实际用例的示例,示例数据和预期结果。

您可能需要使用一系列嵌套查询来重新构造表格,FROM以获取所需的嵌套级别聚合。我认为条件上推和下推仍应防止为要丢弃的行创建JSON,但尚未最终证实这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将对象修改合并到Java对象(JSON)中

将多个json结果合并到一个更新的Cucumber-JVM报告中

如何使用node.js将多个json对象合并到一个json文件中

将合并结果合并到一个数组中

目录中的Powershell对象将合并到InputStream中

将两个列表元素合并到json对象中

如何将JSON对象合并到1个JSON对象中

将高阶Observable合并到现有对象中

将数组JSON对象合并到Postgres中的一个JSON列

如何将多个构面结果合并到具有一个属性的对象列表中

使用forkJoin将两个GET请求的结果合并到Angular 8 / Typescript中的单个可迭代对象中

使用python将具有相同键值对的json对象合并到文件中

如何将json对象的json数组合并到单个json对象

将API结果合并到Powershell中的单个对象中

MySQL将两个查询合并到JSON对象中

PSQL:将多个查询的结果合并/合并到一个表中

将2个图形对象合并到Duplex页面中

将查询结果合并到数组上

使用带有参数的JQ将多个json文件合并到一个对象中

将Json数组合并到对象

将插入对象合并到 MongoDB 文档中

将预测结果合并到数据框中

Javascript将多个对象值合并到数组中

是否可以将 2 个查找结果合并到 mongodb 中的一个对象中?

Spark:如何将 json 对象合并到数组中

JOLT:将字段合并到嵌套对象中

将 json 响应合并到已经初始化的对象 javascript 中

将数组合并到对象到 MongoDB 中

将 JSON 数组值合并到单个 CSV 列中