Ich habe eine Stammbaum-Grafik. Es gibt ein paar Leute, die mich interessieren und sehen, wer ihre unmittelbare Familie ist. Ich habe eine schöne Abfrage, die die Geschwister von einer Person von Interesse zurück:Kombinieren der Ergebnisse von zwei verschiedenen Abfragen in Neo4j
MATCH (p:Person)-[]-(parent:Person)-[]->(parents_kids:Person)
WHERE p.`person_of_interest` = 'y'
RETURN p, parent, parents_kids
;
Ich kann auch die Kinder einer Person von Interesse zurück:
MATCH (p:Person)-[]->(children:Person)
WHERE p.`person_of_interest` = 'y'
RETURN p, children
;
Diese Abfragen funktionieren getrennt, aber wie gebe ich die Ergebnisse zusammen zurück?
Das Problem ist, dass Leute von Interesse manchmal keine Kinder in der Datenbank haben. Auf der anderen Seite haben Leute von Interesse manchmal ihre Eltern nicht in der Datenbank. Daher kann ich keine Abfrage schreiben, um beide Fälle zu berücksichtigen.
Ich bin zu wollen, um eine einfache Tabelle zu erhalten ... Ich bin so etwas wie dieses zu denken, wo es NULL
Werte gegebenenfalls:
| person_of_interest | silblings | children |
|--------------------|-----------|----------|
| | | |
| | | |
Wenn dies unklar ist, ich kann natürlich diese ändern Frage mit einem minimal reproduzierbaren Beispiel. Vielen Dank! parents
, siblings
und children
: Diese Abfrage soll die Person
von Interesse und (möglicherweise leeren) Sammlungen seiner Rückkehr
Ich werde in Ihrem ersten Match zwischen p und Eltern annehmen, dass die Richtung der Beziehung von Eltern zu Kind nach unten ist? Bei einer ungerichteten Beziehung stimmen Sie Eltern mit den Eltern und Kindern von p überein (oder mit allen anderen Beziehungen, auf die eine Person verweist). – InverseFalcon
Möchten Sie auch eine Spalte, in der Eltern gesammelt werden, und eine separate Spalte, in der die Kinder gesammelt werden? Oder möchten Sie eine einzelne Spalte, die sowohl die Eltern als auch alle Kinder (falls vorhanden) enthält? Oder etwas anderes? Wenn Sie Ihre gewünschte Abfrage-Ausgabe bereitstellen, würde es uns helfen, eine nützlichere Lösung bereitzustellen. – InverseFalcon
# 1 Ja, ich könnte den Pfeil nach oben setzen, um die Richtung klarer zu machen. In meinem Fall ändert es nichts daran, wie meine Grafik aufgebaut ist, aber danke für die Beobachtung. –