gpt4 book ai didi

sql - SQL 能够返回嵌套数据吗?如果没有,是否有最佳实践?

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:33 25 4
gpt4 key购买 nike

现在我正在处理一个查询,该查询从 table1 中输出大约 20k 行数据。 Node 可以方便地将其转换为简单的 JSON。所以它是一个巨大的对象,包含作为较小对象的输出行。

{
{ // 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
...
},
...
}

这对带宽造成了难以置信的浪费,并且远远超出了我希望它能够处理 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(很抱歉)作为数据库。

我们非常感谢您的任何意见!

最佳答案

您可以编写一个返回有序列表的查询:

customer   order   orderline   ...
1 1 1
1 1 2
1 2 1
2 3 1

在客户端,您可以迭代此行集,并在客户 ID 更改时创建新客户,在订单号更改时创建新订单,等等。事实上,这种方法仅使用一次数据库调用,因此速度相当快。

关于sql - SQL 能够返回嵌套数据吗?如果没有,是否有最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28053885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com