我的表数据是:
**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(或任何NodeJ兼容的SQL数据库)是否可以实现这一点?
1条答案
按热度按时间rta7y2nd1#
如果您使用的是SQL Server 2016或更高版本,则可以使用
FOR JSON
。附注:最好不要在代码中使用
SELECT *
。在结果集中只返回所需的内容。表模式会随着时间的推移而变化,这使得SELECT *
的结果也会变化。