现在我正在处理一个查询,它从 table1 输出大约 20k 行数据。Node 方便地将其转换为简单的 JSON。所以它是一个巨大的对象,包含作为较小对象的输出行。
{
{ // item 1
column1: value1,
column2: value2,
...
},
{ // item 2
column1: value1,
column2: value2,
...
},
...
}
对于此结果中的每个项目,我想从 table2 中选择更多值。但是,列表中的一项与表 2 的行之间的相关性是一对多的。也就是说,如果我做一个简单的左连接,它会输出如下内容:
{
{ // item 1 with added value from table2
...
},
{ // item 1 with different value from table2
...
},
{ // item 1 with yet another value from table2
...
},
...
}
这在带宽上是非常浪费的,并且远高于我希望它在 20k 行中工作的速度限制。我想以某种方式实现的是这样的结构:
{
{ // item 1
column1: value1,
column2: value2,
...
{
table2value1: value1,
table2value2: value2,
...
}
},
{ // item 2
column1: value1,
column2: value2,
...
{
table2value1: value1,
table2value2: value2,
...
}
},
...
}
目前,仅在准备好的语句中循环遍历 20000 个项目是我对如何执行此操作的最佳猜测。但是,这也很慢,并且可能有更好的方法我不知道(或无法想到)。一些规范:使用 Node、mssql 包和 SQL Server 2000(很抱歉)作为数据库。
任何输入都非常感谢!