2017-07-26 3 views
0

2つのバケットからデータを取得しようとしていますが、エラーは表示されません。Couchbase N1QLクエリが実行されていますが、データが取得されませんでした。(間違ったクエリですね)

第一バケツ:

{ 
"author_ID": 1, 
"profil_creation_date": "2017/01/01/01:23:05/+5", 
"prefix": "Mr.", 
"first_name": "Dylan", 
"middle_name_s": "Alfred", 
"last_name": "Kerr", 
"date_of_birth": "1974/01/02", 
"sex": "M", 
"marital_status": "Single", 
"mobile_phone": "(860) 231-3336", 
"address": [ 
{ 
"address_1": { 
"address_ID": 1, 
"home_address": "338 Counts Lane", 
"city": "West Hartford", 
"province/state": "CT", 
"postal_code": "06105" 
} 
}, 
{ 
"address_2": { 
"address_ID": 2, 
"work_address": "977 Copperhead Rd", 
"city": "Newington", 
"province/state": "CT", 
"postal_code": "06111" 
} 
} 
] 
} 

第二バケツ:b_bucket

ここa_bucket

は、私は(私は3種類のドキュメントを持っている)

AUTHOR_ID文書に興味が文書でありますここに興味のある2つのドキュメントがあります:

p_ou tput_IDドキュメント:

{ 
"p_output_ID": 1, 
"author_ID": 2, 
"overall_score": 4.41, 
"status": { 
"r_status_first": "TRUE", 
"r_status_second": "FALSE", 
"r_status_third": "YES", 
"y_status_second": "TRUE", 
"y_status_third": "FALSE", 
"g_status_third": "TRUE" 
} 
} 

timing_IDドキュメント:私の目標は、1つのクエリ()でこれらの情報をつかむためにある

{

"timing_ID": 1, 
"p_output_ID": 1, 
"author_ID": 1, 
"date_and_time": "2017-06-06/23:45:25.25/+5", 
"time_in_seconds": 12525, 
"incremental_time_in_seconds": "time_in_seconds", 
"current_state_and_duration": { 
"state": "RED", 
"duration_in_seconds": 33333 
} 
} 

接頭辞、FIRST_NAME、middle_name_s、LAST_NAME( a_bucketのauthor_IDドキュメントから) overall_score(b_bucketのp_output_IDドキュメントから) date_and_time、state(timinからb_bucketでg_ID文書)

ここでは私のクエリです:

select p2.current_state_and_duration.state, p1.overall_score, p2.date_and_time 
from proc_data_bucket p1 USE KEYS "p_output_ID" 
JOIN proc_data_bucket p2 ON KEYS "author_ID"; 

構文はOKですが、私は何もデータが

ことで私を助けていないしてください取得しています...

+0

これはcouchbaseフォーラムで回答されています。https://forums.couchbase.com/t/querying-documents-from-2-different-buckets-help/13594/2 – vsr

答えて

0
CREATE INDEX ix1 ON b_bucket(timing_ID); 
SELECT p1.prefix, p1.first_name, p1.middle_name_s, p1.last_name, 
     p2.date_and_time,p2.state, 
     p3.overall_score 
    FROM b_bucket p2 
    JOIN a_bucket p1 ON KEYS ("author_" || TO_STRING(p2.author_ID)) 
    JOIN b_bucket p3 ON KEYS ("p_output_" || TO_STRING(p2.p_output_ID)) 
WHERE p2.timing_ID BETWEEN 10 AND 50; 
関連する問題