【发布时间】:2021-04-18 08:31:59
【问题描述】:
我有下面的表格结构,它有一对多的映射
CREATE TABLE #Primary(PrimaryId int,ItemName varchar(10))
CREATE TABLE #Sub1(PrimaryId int,SubId int,SubName1 varchar(10))
CREATE TABLE #Sub2(PrimaryId int,Sub2Id int,SubName2 varchar(10))
INSERT INTO #Primary
VALUES(1,'My Item1'),(2,'My Item2')
INSERT INTO #Sub1 values(1,1,'Sub1'),(1,2,'Sub2')
INSERT INTO #Sub2 values(1,1,'Name1'),(1,2,'Name2')
我正在尝试以此生成低于 Json 的内容
[
{
"PrimaryId": 1,
"ItemName": "My Item1",
"sb1": [
{
"SubId": 1,
"SubName1": "Sub1"
},
{
"SubId": 2,
"SubName1": "Sub2"
}
],
"sb2": [
{
"Sub2Id": 1,
"SubName2": "Name1"
},
{
"Sub2Id": 2,
"SubName2": "Name2"
}
]
}
]
到目前为止,我已经在下面尝试过。加入一个表有预期的输出结构,但是当第二个表加入时它变得混乱
select p.PrimaryId,p.ItemName,sb1.SubId,sb1.SubName1,sb2.Sub2Id,sb2.SubName2
from #Primary p
inner join #Sub1 sb1 on p.PrimaryId = sb1.PrimaryId
inner join #Sub2 sb2 on p.PrimaryId = sb2.PrimaryId
FOR JSON AUTO
【问题讨论】:
标签: sql json sql-server tsql sql-server-2016