【发布时间】:2021-11-25 01:26:59
【问题描述】:
我有以下两个疑问:
MATCH (s1: location)-[:SHIPS_TO]->(: midLocation)-[: LEAVES]->(d1: location)
RETURN s1.name, count(d1)
MATCH (s2: location)-[:SHIPS_TO]->(: midLocation)-[: LEAVES]->(d2: location)
WHERE s2.manager = d2.manager
RETURN s2.name, count(d2)
我想做的是返回这两个查询的交集。但我似乎找不到实现它的方法。也许这是另一种方法?
【问题讨论】:
-
如果我错了,请纠正我,但看起来查询是一样的,只是您在最后一个中添加了
WHERE s2.manager = d2.manager?如果是这样,那么两者的交集就是第二个查询的结果。 -
不,抱歉。我想要一份所有地点的列表,这些地点只运送到同一个经理的地点。所以查询只会计算这个条件成立的位置的数量。例如,如果一个位置 loc1 被运送到 4 个地方,其中 3 个具有相同的经理,那么第一个查询将返回“loc1:4”,第二个查询将返回“loc1:3”。然后,该交叉点将是该位置运送到的所有位置都具有相同的经理。如果两个查询的计数相同,我只想返回位置。
标签: neo4j intersection