вам нужно предварительно запросить информацию для каждой семьи, чтобы узнать возраст самого старшего ребенка, у которого есть изображение, а затем получить информацию об имени / изображении родителя ... что-то вроде ...
select
PreQuery.parentID,
p.Name ParentsName,
c.childID,
c.age,
cp.imgUrl
from
( select
c.parentID,
max(c.age) OldestChildAgeWithPicture
from
Children c,
childrenPictures cp
where
c.pictureID = cp.pictureID
group by
c.parentID ) PreQuery,
Parent p,
Children c,
ChildrenPictures cp
where
PreQuery.parentID = p.parentID
and PreQuery.parentID = c.parentID
and PreQuery.OldestChildAgeWithPicture = c.age
and c.pictureID = cp.pictureID
Внутреннийзапрос предварительно квалифицируется только по родителю, у ребенка самого высокого возраста, в котором существует изображение ... Итак, если у вас есть семья с 3 детьми, у самого старшего нет изображения, 2-й олдес делает, 2-й самый старый - тот, который будет показан в приведенном вышезапрос.Кроме того, что вы хотите сделать, если в семье есть близнецы, и ОБА имеют фотографии в файле.Этот запрос покажет ОБА детей, если возраст основан на фактическом целочисленном представлении.Однако, если возраст рассчитывается на основе арифметики даты и будет более точным ... Например: один ребенок, рожденный 1 января года X, и в течение того же года другой ребенок, рожденный 1 декабря .... По состоянию на декабрь, они будутбыть тем же самым целочисленным возрастом, но один, очевидно, на 11 месяцев старше другого.
Кроме того, если вы хотите, чтобы у самого старого изображения была НЕЗАБЫВАЕМАЯ, вышеприведенный запрос пришлось бы изменить лишь незначительно ... дайте мне знать, если это то, что вы ищете.