Изпълнявам следните две заявки и получавам някакъв резултат.
Първо запитване
START
person=node:NODE_TYPE(NODE_TYPE='PERSON')
MATCH
(person)-[?:contacts]->(var1)-[?:addresses]->(var2)-[?:details]->(var3)-[?:items]->(var4)-[?:items]->(var5)-[?:value]->(var6)
WHERE
var2.`#nodeId` ='at0000' and var3.`#nodeId` ='at0001' and var4.`#nodeId` ='at0002' and var5.`#nodeId` ='at0028' and var6.`value` =~'address.*'
return distinct person;
Второ запитване
START
person=node:NODE_TYPE(NODE_TYPE='PERSON')
MATCH
(person)-[?:contacts]->(var1)-[?:addresses]->(var2)-[?:details]->(var3)-[?:items]->(var4)-[?:value]->(var5)
WHERE
var2.`#nodeId` ='at0000' and var3.`#nodeId` ='at0001' and var4.`#nodeId` ='at0009' and var5.`value` =~'india.*'
return distinct person;
Но когато комбинирам двете заявки в една заявка, за да получа лица, които отговарят на тези две условия, това не работи.
комбинираната заявка е
START
person=node:NODE_TYPE(NODE_TYPE='PERSON')
MATCH
(person)-[?:contacts]->(var1)-[?:addresses]->(var2)-[?:details]->(var3)-[?:items]->(var4)-[?:items]->(var5)-[?:value]->(var6) , (person)-[?:contacts]->(var7)-[?:addresses]->(var8)-[?:details]->(var9)-[?:items]->(var10)-[?:value]->(var11)
WHERE
var2.`#nodeId` ='at0000' and var3.`#nodeId` ='at0001' and var4.`#nodeId` ='at0002' and var5.`#nodeId` ='at0028' and var6.`value` =~'address.*' and
var8.`#nodeId` ='at0000' and var9.`#nodeId` ='at0001' and var10.`#nodeId` ='at0009' and var11.`value` =~'india.*'
return distinct person;
Тази заявка връща празен итератор.
Използвах „запетая“, за да комбинирам условията MATCH и „и“, за да комбинирам условията WHERE. Има ли някакъв проблем в това?
(Внедрявам създател на заявки, за да създам cypher заявка. Трябва да проверя множество съвпадения на условия. Какъв е най-добрият начин да направя това?)
Neo4j 1.9M04
person
, които отговарят и на двата критерия? Тоест, има ли някаквиperson
s, които се появяват в резултата от заявка 1 и заявка 2? - person ean5533   schedule 18.05.2013