2017-07-26 3 views
0

J'essaie de récupérer des données à partir de 2 seaux, pas d'erreur, mais rien ne s'affiche (j'ai des documents dont j'ai besoin dans ces seaux).requête Couchbase N1QL en cours d'exécution, mais aucune donnée récupérée (mauvaise requête je suppose)

1er seau: a_bucket

est ici le document que je suis intéressé par (j'ai 3 différentes docs)

Document AUTHOR_ID:

{ 
"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" 
} 
} 
] 
} 

2ème seau: b_bucket

voici les 2 docs qui m'intéressent:

p_ou Document 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" 
} 
} 

document timing_ID:

{

"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 
} 
} 

mon but est de saisir ces informations dans une requête():

préfixe

, prenom, middle_name_s, last_name (du document author_ID dans a_bucket) overall_score (à partir du document p_output_ID dans b_bucket) date_et_temps, état (à partir de timin g_ID document b_bucket)

Voici ma question:

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"; 

La syntaxe est OK, mais je reçois pas de données

S'il vous plaît me aider ...

+0

Cela a été répondu dans les forums couchbase https://forums.couchbase.com/t/querying-documents-from-2-different-buckets-help/13594/2 – vsr

Répondre

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;