TadanaNeco10year
@TadanaNeco10year

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Azure Cosmos DB のコンテナ間のデータを外部結合するには

Q&A

Closed

解決したいこと

現在、CosmosDBの勉強中です。
その一環としてACCESSで作成したDBをcosmosDBで再構築しています。
Accessと同じようにコンテナ間のデータ結合するSQLを発行したいのですが、
うまくSQLを再現できません。
解決方法を教えてください。

CosmosDBで作成したコンテナ

コンテナA:社員番号,所属コード,所属名
コンテナB:社員番号,兼務所属コード,兼務所属名

コンテナA・Bをもとに作成したいデータ

社員番号,所属コード,所属名,兼務先所属コード,兼務先所属名
→所属番号をキーに所属名と兼務先を一覧で参照したい

自分で試したこと

MSのドキュメントを参考のSQLを作成しましたが、想定通りデータを抽出できません。
コンテナAとコンテナBに同じ社員番号があることは確認済みです。

MSの参考Document
https://learn.microsoft.com/ja-jp/azure/cosmos-db/sql/sql-query-getting-started#query-the-json-items

SELECT c.社員番号,c.主所属コード,c.主所属名
FROM コンテナB f
JOIN c IN f.社員番号

以下の記載方法ではエラーができます。

SELECT c.社員番号,c.主所属コード,c.主所属名,f.兼務所属コード,f.兼務所属名
FROM コンテナB f
JOIN c IN f.社員番号

Azure 使えるならSQLDB使えばと突っ込みが入りそうですが、
cosmosDBで再現するのが肝なので、その点はご容赦ください。

0

1Answer

https://cosmosdb.github.io/labs/dotnet/labs/03-querying_in_azure_cosmosdb.html#:~:text=Azure%20Cosmos%20DB%E2%80%99s%20JOIN%20supports%20intra%2Ddocument%20and%20self%2Djoins.%20Azure%20Cosmos%20DB%20does%20not%20support%20JOINs%20across%20documents%20or%20containers.

の通り、生のcosmosDBは、コンテナ間のJOINに対応していない様です。

コマンドレット上だと、他のAPI使って疑似的に実現している(か隠しAPIを使っている)のかもしれませんが、コンテナ間でJOINできる様です。

0Like

Comments

  1. 回答ありがとうございます
    回答いただいた内容をもとに、cosmosdb以外のazureサービスを使ってACCESSと同じことができるようになりました。

Your answer might help someone💌