如何与另一个表的最后一条记录创建关联

时间:2019-01-31 21:32:17

标签: cakephp associations cakephp-3.0

我正在使用Cakephp开发溜冰者应用程序。我的数据库shema的一部分是这样的:

database 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,但我无法使其适应我的情况(第三个表中的过滤字段不是第二个)。唯一的结果是:发生内部服务器错误。所以我很难在没有信息的情况下进行调试。

致谢

0 个答案:

没有答案