Wenn Sie Ihr Beispiel verwenden, könnten Sie die Teilmenge der Elternnamen in Kindern abarbeiten, falls Elternnamen in den Namen von Angehörigen enthalten sind. Wenn ja, ziehen Sie eine Union-Abfrage in Betracht:
# GREAT-GRANDPARNTS
SELECT DISTINCT Null As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 1
UNION
# GRANDPARNTS
SELECT DISTINCT Left(Parent, 1) As Parent, Parent As Dependent
FROM Ancestry
WHERE Len(Parent) = 3
UNION
# PARENTS
SELECT DISTINCT Left(Child, 1) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3
UNION
# CHILDREN
SELECT DISTINCT Left(Child, 3) As Parent, Child As Dependent
FROM Ancestry
WHERE Len(Child) > 3;
Natürlich Len()
anpassen , Left()
, oder Mid()
Zeichenfolgenfunktionen und erweitern (d. h. Enkelkinder) gemäß dem tatsächlichen Namensmuster von Ancestry. Diese Lösung funktioniert nicht, wenn in untergeordneten Zeichenfolgenwerten kein Verweis auf Eltern vorhanden ist.