6
jcr의 여러 영역에서 같은 유형의 여러 노드를 가져 와서 날짜순으로 정렬하려고합니다.order by 다중 isdescendantnode를 사용하는 방법
SELECT * FROM [social:asiResource]
WHERE [sling:resourceType] = 'social/qna/components/hbs/topic' AND
[isFeatured_b] = true AND
NOT CONTAINS([cq:tags],'administrative:blacklist') AND
(ISDESCENDANTNODE([/path/to/content]) OR
ISDESCENDANTNODE([/path/to/content]))
ORDER BY [cq:lastModified] DESC
올바른 결과 집합을 반환하지만 올바른 순서가 아닙니다. 실제로 DESC
을 ASC
으로 변경해도 어떤 방식 으로든 결과가 변경되지는 않습니다.
내 솔루션은 현재 다중 쿼리를 수행하고 ORDER BY
이 작동해야하는 통합을 수행하는 것입니다.
SELECT * FROM [social:asiResource]
WHERE [sling:resourceType] = 'social/qna/components/hbs/topic' AND
[isFeatured_b] = true AND
NOT CONTAINS([cq:tags],'administrative:blacklist') AND
ISDESCENDANTNODE([/path/to/content])
UNION
SELECT * FROM [social:asiResource] WHERE
[sling:resourceType] = 'social/qna/components/hbs/topic' AND
[isFeatured_b] = true AND
NOT CONTAINS([cq:tags],'administrative:blacklist') AND
ISDESCENDANTNODE([/path/to/content])
ORDER BY [cq:lastModified] DESC
불행히도 나는 후자의 쿼리를 사용할 수 없게 만드는 것을 통해 약 30 개의 노드를 찾고 있습니다. UNION
을 사용하지 않고 ORDER BY
을 사용할 수 있습니까?
또한'NOT CONTAINS'는 질의를 상당히 늦추는 것처럼 보입니다. – apothic