Postgres 将表非规范化为节点的 json 对象

问题描述

这是我的问题。我有以下表格

CREATE TABLE inventory(
    id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),owner text NOT NULL references profile(name)
);

CREATE TABLE inventory_item(
    id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),description text,amount bigint,inventory uuid nOT NULL references table(id)
);

现在我想查询单个库存

  • 该库存中的所有项目
  • 该广告资源的 ID 和所有者

所以我基本上得到了以下形式的结果,发送给客户端:

{
   "id":"1234123-1234-1234","owner":"tom","items":[
      {
         "id":"2344-123412-34","description":"sword","amount":33
      },{
         "id":"6434-123412-34","description":"apple","amount":23
      },{
         "id":"45454-1123412-34","description":"bow","amount":32
      },{
         "id":"234234-1232412-34","description":"arrow","amount":1
      }
   ]
}

我想直接查询 id 和 owner,然后使用 ARRAY() 将项目添加为子查询。不幸的是,ARRAY() 仅适用于相同类型的列。

那么如何使用 postgres 查询将我的表结构非规范化为节点的 JSON 数组?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)