0

以下查询返回正确的 8 个团队。

询问

START league=node:League(name='September League') 
MATCH (teams)-[:CONTESTED_IN]->league
RETURN teams.name

结果

teams.name
Kakatiya Kings
Broncos
Dunwoody Blues
DOE Spikers
Atlanta Spikers
Wild Claws
Alpharetta One
Camden Rockers

但是,当我将关卡添加为另一个起始节点时,虽然没有在任何地方使用它,但它会返回每个团队重复两次。知道为什么行为差异

询问

START league=node:League(name='September League'), level=node:Level(name='Quarterfinal') 
MATCH (teams)-[:CONTESTED_IN]->league
RETURN teams.name

结果

teams.name
Kakatiya Kings
Broncos
Dunwoody Blues
DOE Spikers
Atlanta Spikers
Wild Claws
Alpharetta One
Camden Rockers
Kakatiya Kings
Broncos
Dunwoody Blues
DOE Spikers
Atlanta Spikers
Wild Claws
Alpharetta One
Camden Rockers
4

2 回答 2

1

league由于和之间没有关系level,因此您得到的是结果的叉积,即team.name在 node:Level 中索引的每个节点一个。因此,如果在索引中找到两个节点,则结果是正确的。

如果您将查询更改为

RETURN teams.name, level

你可以检查一下。要获得独特的结果,请添加distinct

RETURN distinct(teams.name)
于 2013-08-18T07:01:48.577 回答
0

你用的是什么版本?尝试在http://console.neo4j.org/r/6lvxd8中生成错误结果并没有给我任何结果。如果您可以在控制台中重新创建它,请提出问题!

于 2013-08-17T18:48:49.913 回答