에서 나는 다음 왼쪽 외부를 수행하기 위해 인덱스를 생성 한 가입하는 것은 N1ql에 참여 : 그 특정 사용자에 대한 주문이있을 때이 잘 작동이 N1QL
CREATE INDEX idx_test ON bucket("User::" || userId) WHERE docType="Order";
SELECT u.*, ARRAY_AGG(o) as orders
FROM bucket AS u
LEFT OUTER JOIN bucket AS o ON KEY "User::" || o.userId FOR u
WHERE u.docType="User"
AND o.docType="Order"
GROUP BY u;
. 문제는 내가 명령을받지 못했을 때 전혀 결과가 없다는 것입니다.
쿼리에서 AND o.docType="Order"
문을 제거하면 결과가 나타납니다. 그러나 userId
속성을 가진 문서가 있으면 어떻게됩니까? 어떻게하면 제대로 작동합니까?
표준 SQL에서는'AND o.docType = "Order"조건을 (where of out) 조인 조건으로 이동해야합니다. 나는 거기에 조인 절에서 하나 이상의 조건을 어떻게 지정하는지 모르기 때문에 n1ql을 모른다. –
N1QL이 JOIN 문에서 여러 조건을 허용하지 않는다고 생각합니다 (http://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/from.html#story-h2-3). 그러나 제안에 감사드립니다. –
그런 다음'AND (o.docType = "Order"또는 o.docType IS NULL)와 같은 것이 필요합니다. –