下面的查询返回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发布于 2013-08-18 07:01:48
由于league和level之间没有任何关系,所以您得到的是结果的交叉乘积,即在节点:Level中索引的每个节点有一个team.name。因此,如果在索引中找到两个节点,则结果是正确的。
如果将查询更改为
RETURN teams.name, level你可以检查一下。要获得唯一的结果,添加一个distinct
RETURN distinct(teams.name)发布于 2013-08-17 18:48:49
你用的是什么版本?试图在http://console.neo4j.org/r/6lvxd8中生成错误结果并不能给我任何帮助。如果您可以在控制台中重新创建它,请提交一个问题!
https://stackoverflow.com/questions/18291377
复制相似问题