このグラフを考えると:
http://console.neo4j.org/r/g3j3xo
同じ schoolTypeClass 内の哲学者に影響を与えるすべての哲学者を返そうとしています。最初に、正常に動作しているクエリを示します。問題のクエリは投稿の下部にあります。
これは、上記のリンクのデフォルトのクエリです。私はデータがそこにあることを示すことを意図しています。つまり、アリストテレスとプラトンの両方が SchoolTypeClass 'movement' を共有します。
MATCH p1:Philosopher-[:MEMBER_OF]->s1:School-[:TYPE_OF]->st1:SchoolType-[:SUBCLASS_OF]->stc1:SchoolTypeClass
WHERE stc1.name = 'movement'
RETURN p1.name as p1Name, s1.name as s1Name, st1.name as st1Name, stc1.name as stc1Name
これは正常に機能するクエリです。これは、機能しないクエリと非常によく似ています。これは、schoolTypeClass ではなく、同じ schoolType 内の哲学者に影響を与える哲学者を示しています。
MATCH st2:SchoolType<-[:TYPE_OF]-s2:School<-[:MEMBER_OF]-p2:Philosopher<-[:INFLUENCES]-p1:Philosopher-[:MEMBER_OF]->s1:School-[:TYPE_OF]->st1:SchoolType
WHERE st2 = st1
RETURN p1.name as p1Name, s1.name as s1Name, st1.name as st1Name, p2.name as p2Name, s2.name as s2Name, st2.name as st2Name
問題 クエリは何も返しません。同じ schoolTypeClass 内の哲学者に影響を与える哲学者を取得するにはどうすればよいですか?
MATCH stc2:SchoolTypeClass<-[:SUBCLASS_OF]-st2:SchoolType<-[:TYPE_OF]-s2:School<-[:MEMBER_OF]-p2:Philosopher<-[:INFLUENCES]-p1:Philosopher-[:MEMBER_OF]->s1:School-[:TYPE_OF]->st1:SchoolType-[:SUBCLASS_OF]->stc1:SchoolTypeClass
WHERE stc1 = stc2
RETURN p1.name as p1Name, s1.name as s1Name, st1.name as st1Name, stc1.name as stc1Name, p2.name as p2Name, s2.name as s2Name, st2.name as st2Name, stc2.name as stc2Name