Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在nodeJs上,SQL Server是否可以将连接的表返回一个对象数组?_Javascript_Sql_Node.js_Sql Server - Fatal编程技术网

Javascript 在nodeJs上,SQL Server是否可以将连接的表返回一个对象数组?

Javascript 在nodeJs上,SQL Server是否可以将连接的表返回一个对象数组?,javascript,sql,node.js,sql-server,Javascript,Sql,Node.js,Sql Server,我的表格数据是: **partMaster** id partNumber rev |------------|------------|------------| | 01 | assy1 | C | |------------|------------|------------| | 02 | comp1

我的表格数据是:

                 **partMaster**

         id        partNumber      rev     
    |------------|------------|------------|
    |    01      | assy1      |    C       |
    |------------|------------|------------|
    |    02      | comp1      |    A       |
    |------------|------------|------------|
    |    03      | comp2      |    F       |
    |------------|------------|------------|

                    **boms**

         id        partId         itemId        qty     
    |------------|------------|------------|------------|
    |    01      | 01         |    02      |    5       |
    |------------|------------|------------|------------|
    |    02      | 01         |    03      |    11      |
    |------------|------------|------------|------------|
我的问题是

SELECT *
FROM partMaster
left join boms on boms.partId = partMaster.id
WHERE (partMaster.id = '01')
这将返回(以及其他内容)一个记录集,例如

[
    {
        id:[01,01],
        partNumber:'ASSY1'
        rev:'C',
        itemId:'02',
        qty:5
    }
,
   {
        id:[01,01],
        partNumber:'ASSY1'
        rev:'C',
        itemId:'03',
        qty:11
    }
]
这对我来说是非常令人困惑的。我更喜欢这样的东西

[{
id:01,
partNumber:'assy1',
rev:'c'
boms:[{id:01,partId:01,itemId:02,qty:5},{id:02,partId:01,itemId:03,qty:11}] //Left Joined Table 
}]

SQL Server(或任何与NodeJs兼容的SQL数据库)是否可以实现这一点?

如果您使用的是SQL Server 2016或更新版本,您可以对JSON使用

SELECT
    p.id,
    p.partNumber,
    p.rev,
    (SELECT b.id, b.partId, b.itemId, b.qty FOR JSON PATH) as boms
FROM partMaster p
left join boms b on b.partId = p.id
WHERE (p.id = '01');

旁注:最好不要在代码中使用
SELECT*
。始终只返回结果集中需要的内容。表架构可能会随着时间的推移而改变,这使得
SELECT*
的结果也会发生变化。

如果您使用的是SQL Server 2016或更新版本,则可以将
用于JSON

SELECT
    p.id,
    p.partNumber,
    p.rev,
    (SELECT b.id, b.partId, b.itemId, b.qty FOR JSON PATH) as boms
FROM partMaster p
left join boms b on b.partId = p.id
WHERE (p.id = '01');

旁注:最好不要在代码中使用
SELECT*
。始终只返回结果集中需要的内容。表架构可能会随着时间的推移而改变,这使得
SELECT*
的结果也会发生变化。

您使用的是什么版本的SQL Server?您可以使用ORM,它应该将表格数据规范化为您请求的结构。我喜欢Formn()。TypeORM()可能是Node最流行的ORM。您使用的是什么版本的SQL Server?您可以使用ORM,它应该将表格数据规范化为您请求的结构。我喜欢Formn()。TypeORM()可能是Node最流行的ORM。