Tri*_*ara 2 sql postgresql knex.js
我将 knex 与 postgresql db 一起使用,表 A 中有一行与表 B 中的行具有一对一关系,与表 C 中的行具有一对多关系。
我想将 A 与 B 和 C 加入一行并得到一个像这样的 json
{
aCol1: ...,
b: {
bCol1: ...,
bCol2: ...,
},
c: [
{
cCol1: ...
},
{
cCol1: ...
}
]
}
Run Code Online (Sandbox Code Playgroud)
其中类似的内容aCol
表示表 A 中的列,bCol
- 表 B 中的列,这是联合的。
如何通过一个查询和连接来实现这一目标?
小智 5
为此使用 JsonAgg
SQL:
从“tA”中选择 tA.id、tA.name、json_agg(tB) 作为 tB 在“tA”上左连接“tB”。“tB_id”=“tB”.“id”按“tA”.“id”分组, “tA”.“姓名”
膝关节:
db('tA')
.leftJoin('tA', 'tA.tB_id', 'tB.id')
.groupBy(['tA.id', 'tA.name'])
.select(db.raw(`tA.id,tA.name,json_agg(tB) as tB`))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2925 次 |
最近记录: |