我有一个包含两个可选对多关系的实体(childA <<-> parent <->> childB)。这两个子实体中的每一个都包含一个我有兴趣查询的可选字符串。
使用相同的格式,我得到了我期望的结果,但不是另一个。我明白这意味着我不了解我正在使用的工具;并希望有一些见解。这是两个查询的样子:
childA.@count != 0 AND (0 == SUBQUERY(childA, $a, $a.string != NIL).@count)
childB.@count != 0 AND (0 == SUBQUERY(childB, $a, $a.string != NIL).@count)
只有当每个实体实例的字符串也为 nil 时,我才希望从 childA 和 childB 的非 nil 实例中获取结果。我的问题是,为什么要给出我期望的结果?而另一个没有?
澄清:我正在尝试解决我正在寻找两件事之一的一般问题。我要么在属性中搜索默认值。当属性是可选的时,我还在搜索 nil 属性。当仅在填充可选关系时才应考虑可选关系时,问题会更加复杂。如果没有关系计数!= 0,我会以零关系返回所有父母。在一种情况下,这是期望的行为。在另一种情况下,这似乎减少了返回的父计数(结果为 0)。
对于可选属性情况,查询可能如下所示:
parent.@count != 0 AND (parent.gender == -1) OR (parent.gender == NIL)
如果键路径中存在可选关系,则查询采用第一个示例中示例的形式。
再一次,我得到了我所期望的结果,除了一个案例,它的关系或属性特征似乎没有任何独特之处。或者我应该说,这个异常在数据模型结构或查询格式中没有什么独特之处......