Dear all,
I have a problem that I don't understand.
Code:
CREATE (a:LEU) SET a.LEID = "A" RETURN a
CREATE (b:LEU) SET b.LEID = "B" RETURN b
CREATE (c:LEU) SET c.LEID = "C" RETURN c
CREATE (d:LEU) SET d.LEID = "D" RETURN d
CREATE (e:LEU) SET e.LEID = "E" RETURN e
MATCH (parent:LEU {LEID:"A"})
MATCH (child:LEU {LEID:"B"})
MERGE (parent)-[l:REL {share:toFloat(100.0)}]->(child) RETURN parent.LEID, child.LEID, l.share
MATCH (parent:LEU {LEID:"A"})
MATCH (child:LEU {LEID:"E"})
MERGE (parent)-[l:REL {share:toFloat(100.0)}]->(child) RETURN parent.LEID, child.LEID, l.share
MATCH (parent:LEU {LEID:"A"})
MATCH (child:LEU {LEID:"C"})
MERGE (parent)-[l:REL {share:toFloat(100.0)}]->(child) RETURN parent.LEID, child.LEID, l.share
MATCH (parent:LEU {LEID:"B"})
MATCH (child:LEU {LEID:"C"})
MERGE (parent)-[l:REL {share:toFloat(100.0)}]->(child) RETURN parent.LEID, child.LEID, l.share
MATCH (parent:LEU {LEID:"B"})
MATCH (child:LEU {LEID:"D"})
MERGE (parent)-[l:REL {share:toFloat(100.0)}]->(child) RETURN parent.LEID, child.LEID, l.share
I want to find the common parent of B, C D and E
My code is
MATCH
p1=(l0:LEU)-[:REL0..]->(:LEU{LEID:"A"}),
p2=(l0:LEU)-[:REL0..]->(:LEU{LEID:"B"}),
p3=(l0:LEU)-[:REL0..]->(:LEU{LEID:"C"}),
p4=(l0:LEU)-[:REL0..]->(:LEU{LEID:"D"}),
p5=(l0:LEU)-[:REL*0..]->(:LEU{LEID:"E"})
RETURN DISTINCT l0.LEID
which returns nothing; it must return "A"
If I run the following code (I delete the clause on B); it works
MATCH
p1=(l0:LEU)-[:REL0..]->(:LEU{LEID:"A"}),
p3=(l0:LEU)-[:REL0..]->(:LEU{LEID:"C"}),
p4=(l0:LEU)-[:REL0..]->(:LEU{LEID:"D"}),
p5=(l0:LEU)-[:REL0..]->(:LEU{LEID:"E"})
RETURN DISTINCT l0.LEID
Could you help me ?
Best regards,
Alexandre