Я работаю над приложением для айскейтеров с cakephp.Часть моей базы данных Шема выглядит следующим образом:
![database shema](https://i.stack.imgur.com/Ha5cd.png)
Наций- (1, n) -Skaters- (1, n) -Участия- (n, 1) -Конкурсы
Участия имеют поле ранга, а соревнования имеют поле даты
Я хочу иметь ассоциацию hasOne от фигуристов до последнего участия (изэтот фигурист) согласно дате поля в таблице Соревнования.Мне это нужно в модели, потому что я хочу заказать фигуристов по последнему участию или по рангу, полученному во время последнего участия.
Я не знаю, возможно ли это с cakephp v3.x
В MySQL я пишу запрос, который, кажется, работает:
Select s.id, c.title, c.date, p.id, p.rank
from
(
SELECT skater_id, max(competitions.date) as maxdate
FROM `participations`
inner join competitions on competitions.id = participations.competition_id
group by skater_id
) as x
inner join participations as p on p.skater_id = x.skater_id
inner join competitions as c on c.id = p.competition_id
inner join skaters as s on x.skater_id = s.id and maxdate = c.date
Я нашел очень полезный пост , но я не могу адаптировать его к своему случаю (поле фильтрациив третьей таблице, а не во второй).Единственный результат: внутренняя ошибка сервера.Слишком сложно для меня отладить без информации.
С уважением