JOIN クエリ
CData JDBC Driver for Azure Cosmos DB は親ドキュメントを使ったネストされた配列の結合、および複数コレクションの結合をサポートします。
入れ子構造の結合
本製品 では、結合の左部分を、垂直にフラット化したい配列ドキュメントだと判断します。SupportEnhancedSQL を無効にして、ネストされたAzure Cosmos DB ドキュメントを結合します。このタイプのクエリはAzure Cosmos DB API 経由でサポートされています。
例えば、Azure Cosmos DB のrestaurants コレクションから次のクエリを考えましょう。
SELECT [restaurants].[restaurant_id], [restaurants].name, [restaurants.grades].* FROM [restaurants.grades] JOIN [restaurants] WHERE [restaurants].name = 'Morris Park Bake Shop'詳しくは、垂直フラット化 を参照してください。
複数コレクションの結合
リレーショナルデータベースでテーブルを結合するのと同じように、複数のコレクションを結合できます。SupportEnhancedSQL をTrue に設定し、これらのタイプの結合を実行します。以下の例では、Azure Cosmos DB のドキュメントで利用可能なrestaurants およびzips コレクションを使用します。
以下のクエリは、郵便番号コードごとに、存在するレストランのレコードを返します。
SELECT z.city, r.name, r.borough, r.cuisine, r.[address.zipcode] FROM zips z LEFT JOIN restaurants r ON r.[address.zipcode] = z._id
以下のクエリは、結合条件に合うレコードを両テーブルから返します。
SELECT z.city, r.name, r.borough, r.cuisine, r.[address.zipcode] FROM restaurants r INNER JOIN zips z ON r.[address.zipcode] = z._id