如何在Neo4j中使用cypher返回两个不同的列?我得到的问题是:
MATCH (a:Person)-[r:WorksFOR]->(b:Boss), (c:Boss)<-[r2:WorksFOR]-(d:Person)
WHERE b.sex = c.sex
RETURN a, d;
它返回:
a d
John Will
Will John
我想摆脱其中一个专栏。
答案 0 :(得分:2)
这是一个查询:
MATCH (a:Person)-[r:WorksFOR]->(b:Boss), (c:Boss)<-[r2:WorksFOR]-(d:Person)
WHERE b.name < c.name AND
b.sex = c.sex AND
b <> c
RETURN a, d;
您的查询问题是b和c可以匹配任何Boss。为了强制他们在一个订单中匹配,我添加了b.name < c.name
。顺序并不重要,这只是强制它匹配一种方式,而不是另一种方式。我已添加b <> c
,因为你必须处理他们为同一个老板工作的情况,我认为你不想这样做。
一旦你添加了订单,匹配(b和c)的老板只能以一种方式发生,而不是另一种方式,所以你的第二行结果会被淘汰。