Как создать связь с последней записью другой таблицы - PullRequest
0 голосов
/ 01 февраля 2019

Я работаю над приложением для айскейтеров с cakephp.Часть моей базы данных Шема выглядит следующим образом:

database shema

Наций- (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  

Я нашел очень полезный пост , но я не могу адаптировать его к своему случаю (поле фильтрациив третьей таблице, а не во второй).Единственный результат: внутренняя ошибка сервера.Слишком сложно для меня отладить без информации.

С уважением

...