我有一个下面的查询(第一个简化的显示问题)可选的比赛没有返回预期的结果
OPTIONAL MATCH (recEmployee:RecordEmployee)-[:Reference{Id:'F08'}]-(recComputer_F08:RecordComputer)-[:Reference{Id:'F09'}]-(recIncidents_F08_F09:RecordIncidents),
(recEmployee:RecordEmployee),
(recEmployee:RecordEmployee)-[:Reference{Id:'F08'}]-(recComputer_F08:RecordComputer)
WHERE (recIncidents_F08_F09.F01="Trojan")
RETURN recEmployee
它不返回任何东西。 如果我删除第三个可选匹配,那么它工作正常。这是一个错误吗?我当时的想法就是可选。
OPTIONAL MATCH (recEmployee:RecordEmployee)-[:Reference{Id:'F08'}]-(recComputer_F08:RecordComputer)-[:Reference{Id:'F09'}]-(recIncidents_F08_F09:RecordIncidents),
(recEmployee:RecordEmployee)
WHERE (recIncidents_F08_F09.F01="Trojan")
RETURN recEmployee
好吧,我不想混淆问题,当然,人们开始谈论重复的路,什么不是。我认为可选匹配不返回任何东西是一个错误,也许有人有解决方法。这是一个完整的查询,当它返回2个节点时不返回任何内容。
OPTIONAL MATCH (recEmployee:RecordEmployee)-[:Reference{Id:'F08'}]-(recComputer_F08:RecordComputer)-[:Reference{Id:'F09'}]-(recIncidents_F08_F09:RecordIncidents),
(recEmployee:RecordEmployee),
(recEmployee:RecordEmployee)-[:Reference{Id:'F08'}]-(recComputer_F08:RecordComputer)
WHERE (recIncidents_F08_F09.F01="Trojan") OR (recComputer_F08.F02="WSMYSTATION")
RETURN recEmployee
1.我不能,这是简化的查询完整查询有一个或子句,查找计算机名称。所以这两个可选路径应该在那里。 2.删除重复项并不能解释全部删除。在哪种情况下,不同的(1,1)返回null? – Dmitriy
1.为什么你必须在同一个查询中重复相同的子模式?我不明白你的意思。 – cybersam
我将查询添加到原始文章,它解释它。它在底部。 – Dmitriy