Използвайки вашия пример, можете да отработите подмножеството от имена на родители в децата, ако имената на родителите се съдържат в имената на зависимите лица. Ако е така, помислете за заявка за съюз:
# 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;
Разбира се коригирайте Len()
, Left()
или Mid()
низови функции и разширяване (т.е. внуци) според действителните модели на имената на предците. Това решение няма да работи, ако няма препратка към родители в стойностите на дъщерния низ.