2016-05-21 7 views
2

Ich habe 2 Vertices User und Stamp. Vertices sind durch drei Kanten verbunden, WishToHave und Selling.OrientDB wählen eindeutige Vertices aus mehreren Kanten

Ich möchte einzigartige Briefmarken, die eine Beziehung mit dem Benutzer haben. Um es zu machen war ich diesen Befehl ausführen:

select expand(out('Have', 'WishToHave', 'Selling')) from #12:0 

Das Problem mit diesem Befehl ist, dass es STAMP1 'einige Male zurück, weil sie haben und zu verkaufen Kanten hat.

Wie kann ich alle eindeutigen/unterschiedlichen Stamps im Zusammenhang mit User1 auswählen?

Um Testdaten für dieses Beispiel init:

create class User extends V 
create class Stamp extends V 

create class Have extends E 
create class WishToHave extends E 
create class Selling extends E 

create vertex User set name = 'User1' 
create vertex Stamp set name = 'Stamp1' 
create vertex Stamp set name = 'Stamp2' 
create vertex Stamp set name = 'Stamp3' 


create edge Have from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp1') 
create edge WishToHave from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp2') 
create edge Selling from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp1') 
create edge Selling from (select from User where name = 'User1') to (select from Stamp where name = 'Stamp3') 

Antwort

0

ich Ihren Fall mit Ihrer Struktur versucht:

enter image description here

einzigartige Ecken Zum Abrufen Sie die DISTINCT() Funktion nutzen zu können. Ich kann Ihnen zwei Beispiele nennen:

Abfrage 1: Mit EXPAND() in der Zielabfrage

SELECT EXPAND(DISTINCT(@rid)) FROM (SELECT EXPAND(out('Have', 'WishToHave', 'Selling')) FROM #12:0) 

Ausgang:

enter image description here

Abfrage 2: Mit UNWIND in die Zielabfrage

SELECT EXPAND(DISTINCT(out)) FROM (SELECT out('Have', 'WishToHave', 'Selling') FROM #12:0 UNWIND out) 

Ausgang:

enter image description here

Hoffe, es hilft

+0

Vielen Dank. Genau das habe ich gesucht. – TWeb

+0

Hallo @TWeb, froh, dass ich hilfreich gewesen bin. – LucaS

Verwandte Themen