diff --git a/src/Query/Graph.php b/src/Query/Graph.php index 363c74b..16e8a62 100644 --- a/src/Query/Graph.php +++ b/src/Query/Graph.php @@ -85,7 +85,9 @@ final class Graph public function findChildren(QueryRecord $record): QueryRecord { - $recordEdges = $this->edges->filter(fn(Edge $ed) => $ed->source === $record->id)->values()->sort(fn($a, $b) => $a->rank <=> $b->rank)->values(); + $recordEdges = $this->edges->filter(fn(Edge $ed) => $ed->source === $record->id) + ->unique(fn(Edge $ed) => $ed->targetSchema.$ed->field.$ed->target.$ed->source) + ->values()->sort(fn($a, $b) => $a->rank <=> $b->rank)->values(); $groupRecordEdges = []; foreach ($recordEdges as $element) {