我有以下 SQL 查询来创建 JSON。我使用WITHOUT_ARRAY_WRAPPER
所以根不会创建数组。
select *
from Documents D
join Notices Notice ON Notice.DocumentID = D.DocumentID
join NoticeDetails NoticeDetail on NoticeDetail.DocumentID = d.DocumentID
where d.DocumentID = 1234
FOR JSON Auto,WITHOUT_ARRAY_WRAPPER,INCLUDE_NULL_VALUES
上述查询生成以下 JSON。(为简洁起见,我删除了一些 json 属性)
{
"DocumentID": 1234,
"ClientID": 3,
"Notice": [
{
"DocumentID": 1234,
"StateCode": null,
"NoticeDetail": [
{
"NoticeDetailID": 80122,
"DocumentID": 1234,
"CreatedDateTime": "2020-03-26T16:08:40.730",
"ModifiedDateTime": "2020-03-26T16:08:40.730"
}
]
}
]
}
DocumentID
是表中的PK和表中的Documents
FK 。也是它在表中的唯一键。
所以基本上to是1对1的关系。所以我不希望属性成为输出 json 中的数组。 Notices
NoticeDetails
Notices
Documents
Notices
Notice
我预期的输出 json 应该是
{
"DocumentID": 1234,
"ClientID": 3,
"Notice":
{
"DocumentID": 1234,
"StateCode": null,
"NoticeDetail": [
{
"NoticeDetailID": 80122,
"DocumentID": 1234,
"CreatedDateTime": "2020-03-26T16:08:40.730",
"ModifiedDateTime": "2020-03-26T16:08:40.730"
}
]
}
}
我的 SQL 应该是什么才能获得预期的输出?