В моей ситуации, entreprise (компания) может иметь несколько сайтов (filiales), я хочу получить все filiales с массивом формата.Как передать переменную в подзапрос с помощью n1ql?
В json entreprise (компания) нет информации о сайтах (filiales), на сайтах json (filiales), у нее есть компания (фирма) uid. Json антреприза (компания):
{
"type": "entreprise",
"dateUpdate": 1481716305279,
"owner": {
"type": "user",
"uid": "PNnqarPqSdaxmEJ4DoMv-A"
}
}
JSon сайтов (filiāles):
{
"type": "site",
"entreprise": {
"uid": "3c0CstzsTjqPdycL5yYzJQ",
"type": "entreprise"
},
"nom": "test"
}
Запрос я попробовал:
SELECT
META(entreprise).id as uid,
ARRAY s FOR s IN (SELECT d.* FROM default d WHERE d.type = "site" AND d.entreprise.uid = uid) END as sites,
entreprise.*
FROM default entreprise
WHERE entreprise.type = "entreprise";
Результат: Ошибка
{
"code": 5010,
"msg": "Error evaluating projection. - cause: FROM in correlated subquery must have USE KEYS clause: FROM default."
}
Тогда Я использую псевдоним:
SELECT
META(entreprise).id as uid,
ARRAY s FOR s IN (SELECT d.* FROM default d WHERE d.type = "site" AND d.entreprise.uid = META(entreprise).id) END as sites,
entreprise.*
FROM default entreprise
WHERE entreprise.type = "entreprise";
Результат: сайт массива пуст.
Merci, он работает. :) –