Как я могу получить только старшего сына каждого родителя, если у меня есть N родителей, у каждого из которых N детей? У родителя может быть несколько детей, но у каждого ребенка может быть только один родитель.
Например:
Table 1 (Parents)
- John
- Maria
- Steve
Table 2 (Children)
- Bob, 8
- Sandra, 10
- Steve, 20
- Mario, 25
- Lucas, 50
- Sam, 2
- Ricardo, 7
Table 3 (Parents_Children)
- John | Bob, 8
- John | Sandra, 10
- John | Steve, 20
- Maria | Mario, 25
- Maria | Lucas 50
- Steve | Sam 2
- Steve | Ricardo, 7
Я хочу назначить встречу, возвращающую 100% из моих родителей, но только самый старший ребенок.
Результат должен быть:
- John | Steve, 20
- Maria | Lucas 50
- Steve | Ricardo 7
Я получаю результат, когда я ищу только с одним родителем:
select top 1
p.Name,
c.Name,
c.age
from Parents as p
join Parent_Children as pc on pc.ParentId = p.Id
join Children as c on c.Id = pc.ChildrenId
where
p.Name = 'John'
order
by c.age desc
Но я хотел одним запросом вернуть этот результат всем родителям.