在javascript中连接从SQL返回的结果
我的SQL查询返回如下结果:在javascript中连接从SQL返回的结果,javascript,node.js,Javascript,Node.js,我的SQL查询返回如下结果: 我有两个表,Users和Category,其中Category使用用户表(id)中的外键(userID) 但我想将结果显示如下: [ { "userTime": "14:00", "id": 1, "name": "Jack", Category: [ {
我有两个表,Users和Category,其中Category使用用户表(id)中的外键(userID) 但我想将结果显示如下:
[
{
"userTime": "14:00",
"id": 1,
"name": "Jack",
Category: [
{
id: 11,
name: "Category1",
userID: 1
},
{
id: 12,
name: "Category2",
userID: 1
}
]
}
]
我使用冗长的Nodejs和Nodejs来查询sqldb,如何使用Nodejs或javascript实现上述结果 另一种方法是使用函数
Array.prototype.reduce
这种方法使用变量group
来放置必要的属性/键来构建分组键
var数组=[{“userTime”:“14:00”,“id”:1,“name”:“Jack”,“Category.id”:11,“Category.name”:“Category1”,“Category.userID”:1},{“userTime”:“14:00”,“id”:1,“name”:“Jack”,“Category.id”:12,“Category.name”:“Category2”,“Category.userID”:1},
组=['id'],
结果=对象.值(数组.减少((a,c)=>{
var key=group.map(g=>c[g]).join(“|”);
(a[key]| |(a[key]={userTime:c.userTime,id:c.id,name:c.name,Category:[]})).Category.push({id:c['Category.id'],name:c['Category.name'],userID:c.id});
返回a;
}, {}));
控制台日志(结果)代码>
。作为控制台包装{max height:100%!important;top:0;}
我没有投反对票,无论如何谢谢你的帮助:)
[
{
"userTime": "14:00",
"id": 1,
"name": "Jack",
Category: [
{
id: 11,
name: "Category1",
userID: 1
},
{
id: 12,
name: "Category2",
userID: 1
}
]
}
]