如何使用多个isdescendantnode使用order

apo*_*hic 6 jcr jcr-sql2 aem

我试图从jcr中的不同区域抓取相同类型的多个节点,并按日期排序.

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
Run Code Online (Sandbox Code Playgroud)

这将返回正确的结果集,但不是正确的顺序.事实上改变DESCASC不以任何方式改变的结果.

我的解决方案目前是进行多个查询并执行一个允许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
Run Code Online (Sandbox Code Playgroud)

不幸的是,我正在搜索大约30个节点,使后一个查询无法使用.有没有办法使用ORDER BY而不使用UNION

apo*_*hic 0

初始查询现在正在运行。似乎还有其他一些因素导致ORDER BY没有给出有效的结果。

为了澄清你可以ORDER BY在使用多个时ISDESCENDANTNODE