2013-08-17 42 views
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 

回答

0

什么版本您使用的?在http://console.neo4j.org/r/6lvxd8试图产生错误的结果不给我任何。如果您可以在控制台中重新创建它,请提交问题!

+0

我正在从neoclipse该查询针对1.8.2版本的Neo4j的 –

1

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

如果你改变你的查询

RETURN teams.name, level 

可以检查。 为了得到独一无二的效果,添加distinct

RETURN distinct(teams.name)