SQL是否能够返回嵌套数据?如果没有,是否有最佳实践?
现在我正在处理一个查询,它从表1中输出大约20k行数据。节点方便地将其转换为简单的JSON。所以它是一个巨大的对象,包含作为较小对象的输出行SQL是否能够返回嵌套数据?如果没有,是否有最佳实践?,sql,json,node.js,nested-lists,node-mssql,Sql,Json,Node.js,Nested Lists,Node Mssql,现在我正在处理一个查询,它从表1中输出大约20k行数据。节点方便地将其转换为简单的JSON。所以它是一个巨大的对象,包含作为较小对象的输出行 { { // item 1 column1: value1, column2: value2, ... }, { // item 2 column1: value1, column2: value2, ... }, ...
{
{ // item 1
column1: value1,
column2: value2,
...
},
{ // item 2
column1: value1,
column2: value2,
...
},
...
}
对于这个结果中的每个项目,我想从表2中选择更多的值。然而,列表中的一个项目与表2中的行之间的相关性是一对多的。也就是说,如果我做一个简单的左连接,它会产生如下结果:
{
{ // item 1 with added value from table2
...
},
{ // item 1 with different value from table2
...
},
{ // item 1 with yet another value from table2
...
},
...
}
这在bandwith上是非常浪费的,并且远远超过了我希望它在20k行的速度限制。我想要实现的是这样一种结构:
{
{ // item 1
column1: value1,
column2: value2,
...
{
table2value1: value1,
table2value2: value2,
...
}
},
{ // item 2
column1: value1,
column2: value2,
...
{
table2value1: value1,
table2value2: value2,
...
}
},
...
}
就目前而言,在一份准备好的声明中循环浏览20000项是我对如何做到这一点的最佳猜测。然而,这也是相当缓慢的,可能有一个更好的方式,我不知道或想不出来。一些规范:使用节点、mssql包和SQLServer2000以及数据库
非常感谢您的任何意见 您可以编写一个返回有序列表的查询:
customer order orderline ...
1 1 1
1 1 2
1 2 1
2 3 1
在客户端,您可以迭代此行集,并在客户id更改时创建新客户,在订单号更改时创建新订单,等等。这种方法只使用一个数据库调用,这一事实使它非常快。听起来像是要在服务器上进行左连接……左连接正是产生这种结果的原因。很抱歉没有具体说明。