2013-08-17 82 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)