回答編集履歴

2

備考追加

2016/08/22 14:56

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  **非キー同士の結合はサポートしていない**とのことです。
78
78
 
79
- (現在は4.5が最新っぽいですがサポートされるようになってるかは微妙。RIGHT JOIN的なのは出来るようになったとのことですが。)
79
+ (現在は4.5が最新っぽいですがサポートされるようになってるかは微妙。RIGHT JOIN的なのは出来るようになったとのことですが。ただ今後のバージョンアップでその辺も出来るように改善するとのことです。)
80
80
 
81
81
 
82
82
 

1

追記

2016/08/22 14:56

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -53,3 +53,65 @@
53
53
 
54
54
 
55
55
  動作確認は出来ていないのでダメだったらすみません・・・^^;
56
+
57
+
58
+
59
+
60
+
61
+ ###追記
62
+
63
+ なるほど、そういう罠があるのですね・・・
64
+
65
+
66
+
67
+ こちらでも空き時間で調べ直しみましたが、
68
+
69
+ その際に[このようなQA](https://forums.couchbase.com/t/possible-to-execute-joins-using-non-key-fields/6463)(英語情報くらいしかなくて辛い)を見つけました。
70
+
71
+
72
+
73
+ もしかしたら上記QAの質問と質問者さんと内容が近いかもしれません。
74
+
75
+ このQAによるとN1QL(Ver4.1時点)では、
76
+
77
+ **非キー同士の結合はサポートしていない**とのことです。
78
+
79
+ (現在は4.5が最新っぽいですがサポートされるようになってるかは微妙。RIGHT JOIN的なのは出来るようになったとのことですが。)
80
+
81
+
82
+
83
+ なのでtest5の項目がどちらと非キーということであるならば、
84
+
85
+ **JOIN句利用する手段は不可能**となります。
86
+
87
+
88
+
89
+ JOIN句を利用できる前提条件ですが、
90
+
91
+ - 片側のJSONの主キーを用いられること
92
+
93
+ - もう片側は上記主キー対応する外部キーを持つこと
94
+
95
+
96
+
97
+ 上記を満たす必要があるそうです。
98
+
99
+
100
+
101
+ なのでJOINを利用するのであれば、
102
+
103
+ データモデル自体の見直しとなる可能性が高いかもしれません。
104
+
105
+ (主キーとかの変更手段があるのか調べてみましたが、どうもこれというのが分かりませんでした・・・)
106
+
107
+
108
+
109
+ JOIN以外を用いる別解がありそうな気もしますが、
110
+
111
+ 現時点で当方が回答できるのはここまでとなります。
112
+
113
+ (あまり見てないけどNESTとか別のアプローチ方もあるかも)
114
+
115
+
116
+
117
+ 一応また何か分かった場合は追記します。