我有一個下面的查詢(第一個簡化的顯示問題)可選的比賽沒有返回預期的結果
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