加入不同的列

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 获取和聚合,然后返回以获取更多商店详细信息——两个查询基本上完成了一个连接。