У меня есть следующий SQL запрос для создания JSON. Я использую WITHOUT_ARRAY_WRAPPER
, поэтому root не создает массив.
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 в таблице Notices
и NoticeDetails
. Также его УНИКАЛЬНЫЙ КЛЮЧ в таблице Notices
.
Так что в основном от Documents
до Notices
это отношение 1 к 1. Поэтому я не хочу, чтобы Notice
свойство было массивом в выводе 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"
}
]
}
}
Каким должен быть мой SQL, чтобы получить ожидаемый результат?