加入不同的列
Joining over different columns
我正在尝试让 JOIN 正确处理 Azure DocumentDB 数据库中的数据。
我有一堆代表购买的文件,即like
{
"Timestamp": "2016-02-22T15:05:09.9863478+01:00",
"MessageTemplate": "Processed {@Purchases}",
"Level": 2,
"Exception": null,
"RenderedMessage": "Processed { Name: \"FunnyBibs\", Quantity: 112, PurchasedAt: \"Store2\" }",
"Properties": {
"Purchases": {
"Name": "FunnyBibs",
"Quantity": 112,
"PurchasedAt": "Store2"
}
},
"id": "2d919bbc-2763-47ea-9cc0-ee41cd6adb96"
}
{
"Timestamp": "2016-02-22T15:05:09.8462592+01:00",
"MessageTemplate": "Processed {@Purchases}",
"Level": 2,
"Exception": null,
"RenderedMessage": "Processed { Name: \"Hats\", Quantity: 11, PurchasedAt: \"Store1\" }",
"Properties": {
"Purchases": {
"Name": "Hats",
"Quantity": 11,
"PurchasedAt": "Store1"
}
},
"id": "d6a5244b-92ef-4785-a065-dc45790f87b4"
}
{
"Timestamp": "2016-02-22T15:05:09.6886969+01:00",
"MessageTemplate": "Processed {@Purchases}",
"Level": 2,
"Exception": null,
"RenderedMessage": "Processed { Name: \"Drinks\", Quantity: 4, Store: \"Store1\" }",
"Properties": {
"Purchases": {
"Name": "Drinks",
"Quantity": 4,
"Store": "Store1"
}
},
"id": "ed1ee4e4-862e-412e-9f37-05a5925c4c09"
}
一些文档指定了 "PurchasedAt"-属性,而其他文档指定了 "Store"-属性。
我想通过在 "Store"-属性 和 "PurchasedAt"-属性 上加入文档来提取名称、数量和购买商品的商店,这样我可以感觉到在同一个地方购买了多少商品。
所以我写了这个 JOIN 语句 - 但我不知道如何在 return.
中获取任何数据
SELECT soldAt.PurchasedAt, item.Properties.Purchases.Quantity
FROM item
JOIN soldAt IN item.Properties.Purchases.PurchasedAt
WHERE item.Store = soldAt.PurchasedAt
那我做错了什么?我意识到 JOIN 语法看起来很像 T-SQL,但细微的差异仍然让我感到困惑 :-| .
DocumentDB 不支持文档间联接,仅支持文档内(自身)联接以格式化输出。为了实现您的目标,您可以使用 PurchasedAt 获取和聚合,然后返回以获取更多商店详细信息——两个查询基本上完成了一个连接。
我正在尝试让 JOIN 正确处理 Azure DocumentDB 数据库中的数据。
我有一堆代表购买的文件,即like
{
"Timestamp": "2016-02-22T15:05:09.9863478+01:00",
"MessageTemplate": "Processed {@Purchases}",
"Level": 2,
"Exception": null,
"RenderedMessage": "Processed { Name: \"FunnyBibs\", Quantity: 112, PurchasedAt: \"Store2\" }",
"Properties": {
"Purchases": {
"Name": "FunnyBibs",
"Quantity": 112,
"PurchasedAt": "Store2"
}
},
"id": "2d919bbc-2763-47ea-9cc0-ee41cd6adb96"
}
{
"Timestamp": "2016-02-22T15:05:09.8462592+01:00",
"MessageTemplate": "Processed {@Purchases}",
"Level": 2,
"Exception": null,
"RenderedMessage": "Processed { Name: \"Hats\", Quantity: 11, PurchasedAt: \"Store1\" }",
"Properties": {
"Purchases": {
"Name": "Hats",
"Quantity": 11,
"PurchasedAt": "Store1"
}
},
"id": "d6a5244b-92ef-4785-a065-dc45790f87b4"
}
{
"Timestamp": "2016-02-22T15:05:09.6886969+01:00",
"MessageTemplate": "Processed {@Purchases}",
"Level": 2,
"Exception": null,
"RenderedMessage": "Processed { Name: \"Drinks\", Quantity: 4, Store: \"Store1\" }",
"Properties": {
"Purchases": {
"Name": "Drinks",
"Quantity": 4,
"Store": "Store1"
}
},
"id": "ed1ee4e4-862e-412e-9f37-05a5925c4c09"
}
一些文档指定了 "PurchasedAt"-属性,而其他文档指定了 "Store"-属性。
我想通过在 "Store"-属性 和 "PurchasedAt"-属性 上加入文档来提取名称、数量和购买商品的商店,这样我可以感觉到在同一个地方购买了多少商品。
所以我写了这个 JOIN 语句 - 但我不知道如何在 return.
中获取任何数据SELECT soldAt.PurchasedAt, item.Properties.Purchases.Quantity
FROM item
JOIN soldAt IN item.Properties.Purchases.PurchasedAt
WHERE item.Store = soldAt.PurchasedAt
那我做错了什么?我意识到 JOIN 语法看起来很像 T-SQL,但细微的差异仍然让我感到困惑 :-| .
DocumentDB 不支持文档间联接,仅支持文档内(自身)联接以格式化输出。为了实现您的目标,您可以使用 PurchasedAt 获取和聚合,然后返回以获取更多商店详细信息——两个查询基本上完成了一个连接。