У меня есть «сообщение» коллекция в DocumentDb:DocumentDb: может несколько объединений включать пустые наборы
{
Subject: "Foo",
To: [
{ "Name": "Me", "Address": "[email protected]" }
],
Cc: [
{ "Name": "You", "Address": "[email protected]" }
]
}
и
{
Subject: "Bar",
To: [
{ "Name": "You", "Address": "[email protected]" }
],
Cc: []
}
Я хотел бы, чтобы выбрать все документы, которые «вы @ компания. com 'в качестве адреса To или Cc:
SELECT Message.Subject
FROM Message
JOIN To IN Message.To
JOIN Cc IN Message.Cc
WHERE "[email protected]" IN (To.Address, Cc.Address)
Это возвращает первый документ, но не второй.
Я считаю, что JOIN Cc in Message.Cc
заставляет второй документ удаляться из результатов, потому что он пуст.
Есть ли способ структурировать SQL-запрос для включения второго документа в результирующий набор?
У меня есть upvoted запрос подзапроса. Это разумный кандидат для хранимой процедуры? –
Спасибо. Хранимые процедуры имеют ту же проблему, что и UDF, они не смогут использовать индекс. Я бы определенно рекомендовал два запроса - это более легкий, и вы можете даже запускать их параллельно. –