小编max*_*mus的帖子

Postgresql 嵌套 row_to_json 不起作用

如果我使用 postgresql 9.2,这可能不会成为问题,但是我(还)无法从 9.1 升级,并且我正在使用 9.1 的 json 数据类型扩展。我正在尝试实现如下所示的 json 对象:

[
  { "type": "add"
    , "id":"285947086237736960"
    , "version" : 1
    , "lang":"en"
    ,"fields":  {
        "id" : "285947086237736960"
        , "created_at":"2013-01-01"
        , "content":"bla bla blah LOL ROFL"
    }
  }, ...
]
Run Code Online (Sandbox Code Playgroud)

嵌套的“fields”属性来自名为“tweets”的数据库表。两个 id 来自同一个表。但是,类型、版本、语言始终相同。我查看了/sf/ask/925899971/的建议,其中提到使用别名子查询表达式。这根本不起作用,我仍然得到 f1、f2 等。使用 row_to_json 创建 JSON 时将名称设置为属性的建议适用于单个级别,但我无法让它适用于嵌套“字段” “ 属性。

据我所知,这只适用于类似于以下的 with 语句:

with tweets(type, id) as ( 
    select 'add' as type, tweets.id from tweets 
) select row_to_json(tweets) from tweets;
Run Code Online (Sandbox Code Playgroud)

但是,如何获得嵌套的“字段”?任何帮助是极大的赞赏!

postgresql subquery postgresql-9.1

2
推荐指数
1
解决办法
4167
查看次数

标签 统计

postgresql ×1

postgresql-9.1 ×1

subquery ×1