由于neo4j 2.0.0中的新变化,我不得不提出这个查询(而不是使用'r ?:'运算符的查询):
start s=node(404374)
match (s)<-[:SESSION]-(uv:_UrlVisit)
optional match (uv)-[r:REFERRER]->()
with uv, r where r IS NULL
return uv
UNION
start s=node(404374)
match (s)<-[:SESSION]-(uv:_UrlVisit)-[:REFERRER]->(uvp:_UrlVisit)-[:SESSION]->(s2)
where ID(s)<>ID(s2)
return uv;
有没有任何方法可以在没有UNION的情况下一次性写入此查询?
答案 0 :(得分:1)
基于@jjaderberg的建议,此查询返回正确的结果:
start s=node(404374)
match (s)<-[:SESSION]-(uv:_UrlVisit)
optional match (uv)-[r:REFERRER]->(:_UrlVisit)-[:SESSION]->(s2)
with s,uv,r,s2
where r IS NULL OR ID(s)<>ID(s2) return uv;