2017-12-19 5 views
0

ich die folgende Struktur in DB haben:

wie Abfrage in Orientdb von zwei Eingangs begrenzen params

class(V): @city (Name, X, Y) 
class(V): @route(Name) 
class(V): @Alternative_Route(Name) extends from @route 

class(E): @has_route_to 
class(E): @has_subroute 

Die Kanten an den Eckpunkten wie folgt verbunden sind:

city -> has_route_to -> route -> has_route_to -> city 
route -> has_subroute -> city 

Als Eingabe habe ich zwei Punkte: City1 und City2.
Zunächst muss ich sehen, welche Unterrouten wir zwischen City1 und City2 haben.
Ich schreibe die folgende Abfrage:

traverse outE('has_route_to'), has_route_to.in 
from 
(select * from City where Name = 'City1') 

Aber wenn ich es ausführen werde ich alle Routen aus City1, nicht nur von City1 zu City2 sehen.

Es ist möglich zu OrientDB zu sagen: Zeige mir alle Punkte zwischen City1 und City2 nur?

Antwort

0

Versuchen Sie folgendes:

select from route where (Name in (select both('has_route_to').Name from City where Name = "City1")) and (Name in (select both('has_route_to').Name from City where Name = "City2")) 

Hoffe, dass es

Grüße

+0

Dank Michela hilft, das hilft –