我有这样的结构 `
/content/mysite/contacts/johnsmith/jcr:content/contact,
/content/mysite/contacts/john2dave/jcr:content/contact,
/content/mysite/contacts/adamwashingto/jcr:content/contact,
/content/mysite/contacts/janesmith/jcr:content/contact`
......等等
/content/mysite/<nameofuser>/jcr:content
,有一个名为“pagename”的属性,每个属性都有不同的值。并在
/content/mysite/<nameofuser>/jcr:content/contact
,有一个名为“firstname”的属性,当然,每个“firstname”都有自己的名字。
现在我想找到所有'contact'节点,其“firstname”='john'和那些父节点jcr:content的pagename =“abc”。 如何在JCR SQL2中编写此查询?
谢谢。
答案 0 :(得分:1)
实现它的一种方法是使用JOINS和JCR SQL2的ISCHILDNODE连接条件
假设您的jcr:content
类型为cq:PageContent
且contact
类型为nt:unstructured
,则查询将为
SELECT * FROM [cq:PageContent] as parent
INNER JOIN [nt:unstructured] as child
ON ISCHILDNODE(child, parent)
WHERE ISDESCENDANTNODE(parent, '/content/mysite')
AND child.firstname = 'john'
AND parent.pagename ='abc'
您也可以参考此JCR Query Cheat Sheet进行快速参考。