php - 如何在cakephp中加入

标签 php mysql cakephp

我尝试获取学生的结果(最后插入)。

我可以轻松地使用 mysql 查询来获取记录。

 SELECT student.first_name,student.last_name,result.* 
    FROM result 
    join student 
        on student.student_id=result.student_id 
 WHERE result.id IN (
            SELECT MAX(result.id) FROM result GROUP BY result.student_id
        )

我尝试将其转换为 cake-php,就像这样使用分页

$this->paginate = array(
    'fields' => array(
        'Student.first_name',
        'Student.last_name',
        'Result.*',
    ),
    'joins' => array(

        array(
            'conditions' => array(
                'Student.student_id = Result.student_id',
            ),
            'table' => 'student',
            'alias' => 'Student',
            'type' => 'join',
        ),
    ),
    'conditions' => array(
        'Result.id' => array(
        ),
    ),
    'limit'=>10,
    'contain' => array(
        'Student',
    ),
);
$data = $this->paginate('Result');

最佳答案

请尝试这个

$this->paginate = array(
    'fields' => array(
        'Student.first_name',
        'Student.last_name',
        'Result.*',
    ),
    'joins' => array(
        array(
            'conditions' => array(
                'Student.student_id = Result.student_id',
            ),
            'table' => 'student',
            'alias' => 'Student',
            'type' => 'join',
        ),
    ),
    'conditions' => array(
        'Result.id IN ( SELECT MAX(result.id) FROM result GROUP BY result.student_id )
    ),
    'limit'=>10
);
$data = $this->paginate('Result');

关于php - 如何在cakephp中加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837410/

相关文章:

cakephp - PHP复选框数据存入表中?

php - 我的第一个 CakePHP 项目中未找到列错误

javascript - 如何在不刷新页面的情况下在屏幕上显示新记录?

MySQL复制到tmp表导致挂起

mysql - 配置 Grafana 仅在查询匹配超过 4 分钟时发出警报

mysql - 使用 auto_increment 约束向现有表添加新列

php - Symfony 在哪里初始化 Doctrine 的默认事务隔离级别?

javascript - 传递文件以保存到 php

php - Nginx PHP 因大文件上传(超过 6 GB)而失败

cakephp - Cakephp-使用Auth时在 Controller 中获取用户ID