私はファミリーツリーのグラフを持っています。私が興味を持っている人がいくつかあり、彼らの直属の家族が誰であるかを見ています。私は興味の人の兄弟を返します。素敵なクエリがあります:私はまた、関心の人の子を返すことができNeo4jの2つの異なるサイファークエリの結果を組み合わせる
MATCH (p:Person)-[]-(parent:Person)-[]->(parents_kids:Person)
WHERE p.`person_of_interest` = 'y'
RETURN p, parent, parents_kids
;
を:
MATCH (p:Person)-[]->(children:Person)
WHERE p.`person_of_interest` = 'y'
RETURN p, children
;
は、これらのクエリは、個別に正常に動作しますが、どのように結果をまとめて返しますか?
問題は、興味のある人がデータベースに子供を持っていないことがあるということです。一方、関心のある人はデータベースに親を持たないこともあります。だから私は両方の場合に一致する1つのクエリを書くことはできません。これが不明である場合は、私はもちろん、これを変更することができ
| person_of_interest | silblings | children |
|--------------------|-----------|----------|
| | | |
| | | |
:
私は単純なテーブルを取得したいよ...私はNULL
値が適切な場合に存在し、このような何かを考えています最小の再現可能な例を用いて質問する。ありがとう!
私はpと親の最初の試合で、関係の方向が親から子に向かっていると仮定しようと思いますか?無関係の関係では、pの親と子の両方に親をマッチさせます(またはPersonからの他の関係に) – InverseFalcon
また、出力のために、親を収集する列と子を収集する別の列が必要ですか?または、親と子の両方が含まれている単一の列が必要な場合(存在する場合)は?または、他の何か?希望のクエリ出力を提供すれば、より有用なソリューションを提供するのに役立ちます。 – InverseFalcon
#1はい私は方向をより明確にするためにそこにその矢印を置くことができました。私の場合はグラフがどのように設定されているかによって何も変わることはありませんが、観察に感謝します。 –