我正在使用Cakephp开发溜冰者应用程序。我的数据库shema的一部分是这样的:
国家-(1,n)-溜冰者-(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
我找到了一个very usefull post,但我无法使其适应我的情况(第三个表中的过滤字段不是第二个)。唯一的结果是:发生内部服务器错误。所以我很难在没有信息的情况下进行调试。
致谢