我有以下查询,它没有产生任何结果,但没有错误。我正在尝试选择所有不是“精选新闻稿”并且属于某种类型的页面,例如“公告”。
SELECT parent.* FROM [cq:Page] AS parent INNER JOIN [nt:base]
AS child ON ISCHILDNODE(child,parent) WHERE ISDESCENDANTNODE(parent, '/content/acme/en_US/site-content/content-modules/resources/press-releases')
AND (NOT CONTAINS(child.[cq:tags], 'acme- www:FeaturedResources/FeaturedPressRelease*'))
AND (CONTAINS(child.[cq:tags], 'acme-www:PressReleaseType/Announcement'))
AND child.[pressReleaseDate] > CAST('2015-01-01T00:00:00.000Z' AS DATE)
AND child.[pressReleaseDate] < CAST('2016-01-01T00:00:00.000Z' AS DATE)
order by child.[jcr:title]
如果我删除“AND(不包含...”行,我会得到正确的结果。另外,如果我把那行放回去,并删除“AND(CONTAINS(...”)行,我会得到正确的结果。但是有两行在那里同时给我没有结果。有些页面应该是合格的,即它们不是特色新闻稿,它们是公告类型,所以在我看来,这在逻辑上应该可行。
有谁知道查询不起作用的任何原因?我是 SQL2 的新手,我在网上找不到任何类似的例子,只是一般性的语法描述。
谢谢!