neo4j密码查询中的And条件不';行不通
我创建了一个包含火车和车站的neo4j数据库。每列火车停在一个车站(这是关系)。我已经写了下面的密码查询,并得到了附加的答复neo4j密码查询中的And条件不';行不通,neo4j,cypher,Neo4j,Cypher,我创建了一个包含火车和车站的neo4j数据库。每列火车停在一个车站(这是关系)。我已经写了下面的密码查询,并得到了附加的答复 match (train:Train)-[:STOP_AT]->(station:Station) where station.id='101' or station.id='65' return train,station; 这给了我所有停在id='101'或'65'站的列车。 但是当我运行下面的密码来获取所有停在id='101'和'65'的列车时,我什么也
match (train:Train)-[:STOP_AT]->(station:Station)
where station.id='101' or station.id='65'
return train,station;
这给了我所有停在id='101'或'65'站的列车。
但是当我运行下面的密码来获取所有停在id='101'和'65'的列车时,我什么也没有得到
match (train:Train)-[:STOP_AT]->(station:Station)
where station.id='101' and station.id='65'
return train,station;
这是一个简单的密码,但我找不到查询的问题。有人能帮我找出问题吗?在此查询中:
match (train:Train)-[:STOP_AT]->(station:Station)
where station.id='101' and station.id='65'
return train,station;
您正在搜索一个同时具有id101
&65
的电台。所以这是不可能的,结果是emtpy
你想要的是找到一列停在两个车站的火车。这就是问题所在:
MATCH
(train:Train)-[:STOP_AT]->(station1:Station),
(train)-[:STOP_AT]->(station2:Station)
WHERE
station1.id='101' AND
station2.id='65'
RETURN train,station;
这个查询工作正常。匹配(train:train)-[:STOP_AT]->(:Station{id:'65'})其中(train)-[:STOP_AT]->(:Station{id:'101'})返回列车;我不知道为什么first cypher不工作,因为Metat逻辑不工作,没有一个节点的属性同时是两个不同的值。您可能想看一看这篇关于的知识库文章,这篇文章将让您在给定站点ID列表的情况下,对任意数量的站点执行您想要的匹配。@InverseFalcon感谢您的解决方案。这是有道理的