【发布时间】:2018-07-24 00:59:48
【问题描述】:
如何从单个 Postgres 查询创建多维数组。
我有 3 个包含以下列的表格:
-
tb_school (id, school_name) 例如:
[ {id:"1", school_name:"School1"}, {id:"2", school_name:"School2"} ] -
tb_profile (id, profile_name, school_id) 例如:
[ {id:"1", profile_name:"John", school_id:"1"}, {id:"2", profile_name:"Peter", school_id:"1"}, {id:"3", profile_name:"Sam", school_id:"1"}, {id:"4", profile_name:"Susan", school_id:"2"}, {id:"5", profile_name:"Jude", school_id:"2"}, {id:"6", profile_name:"Kim", school_id:"2"} ] -
tb_article(id、article_name、profile_id) 例如:
[ {id:"1", article_name:"Headline News", profile_id:"1"}, {id:"2", article_name:"Sports Recap", profile_id:"2"}, {id:"3", article_name:"Weather", profile_id:"3"}, {id:"4", article_name:"Arts", profile_id:"4"}, {id:"5", article_name:"Other", profile_id:"5"}, {id:"6", article_name:"Example", profile_id:"6"} ]
我希望查询返回结果 lat 看起来像这样:
[
{school_name:"School1", people:[
{profile_name:"John", articles:[
article_name:"Headline News"
]},
{profile_name:"Peter", articles:[
article_name:"Sports Recap"
]},
{profile_name:"Sam", articles:[
article_name:"Weather"
]},
]},
{school_name:"School2", people:[
{profile_name:"Susan", articles:[
article_name:"Arts"
]},
{profile_name:"Jude", articles:[
article_name:"Other"
]},
{profile_name:"Kim", articles:[
article_name:"Example"
]},
]}
]
我知道可以通过嵌套 for 循环中的 3 个单独的选择查询来实现这一点。我想知道的是,这可以通过一个 postgres 查询来实现吗?
【问题讨论】:
-
您还应该给我们提供表格中的示例数据。
-
@RaymondNijland 请查看更新后的问题。我为每个表添加了示例 JSON。提前谢谢你
标签: javascript sql arrays postgresql multidimensional-array