2017-12-23 11 views
1

動作しません。各列車は駅に停車します(これは関係です)。私はCYPHERクエリの下に書かれており、これが私のステーションID =「101」または「65」で停止し、すべての列車を与える添付の応答にAND条件は、私は電車や駅でのNeo4jデータベースを作成している

match (train:Train)-[:STOP_AT]->(station:Station) 
where station.id='101' or station.id='65' 
return train,station; 

enter image description here を持っています。私は、ID =「101」と「65」で停止し、すべての列車を取得するには、以下のCYPHERを実行したときに しかし、私は何も

match (train:Train)-[:STOP_AT]->(station:Station) 
where station.id='101' and station.id='65' 
return train,station; 

これは、単純なCYPHERあるを持っていないが、私は問題を見つけることができませんクエリ。誰かが私が問題を見つけるのを助けることができますか?このクエリで

+0

このクエリは正常に動作します。 一致(列車:列車) - [:STOP_AT] - >(:ステーション{ID:'65 '}) (列車) - [:STOP_AT] - >(:ステーション{ID:' 101' }) リターン列車; 私が最初にCYPHERが私のために動作しなかった理由はわかりません –

+1

そのロジックは動作しません、その性質は同時に2つの異なる値である単一のノードが存在しません。あなたは、あなたがしたい試合の種類を実行できます[マッチ交差点を実行する]で、このナレッジベースの記事(https://neo4j.com/developer/kb/performing-match-intersection/)、を見てみたいことがありそれらのIDのリストを与えられた任意の数のステーションに送信する。 – InverseFalcon

+0

@InverseFalcon解決に感謝します。それは理にかなった –

答えて

2

match (train:Train)-[:STOP_AT]->(station:Station) 
where station.id='101' and station.id='65' 
return train,station; 

あなたは、同時にID 101 & 65を持つステーションを検索しています。だからそれは不可能で、結果はemtpyです。何をしたい

は2つの駅で停車の列車を見つけることです。だから、これはクエリです:

MATCH 
    (train:Train)-[:STOP_AT]->(station1:Station), 
    (train)-[:STOP_AT]->(station2:Station) 
WHERE 
    station1.id='101' AND 
    station2.id='65' 
RETURN train,station; 
関連する問題