小编jay*_*123的帖子

如何创建使用子查询的连接?

如何将以下SQL查询转换为CakePhp查找查询?

SELECT
    a.id, a.rev, a.contents
FROM
    YourTable a
INNER JOIN (
    SELECT
        id, MAX(rev) rev
    FROM
        YourTable
    GROUP BY
        id
) b ON a.id = b.id AND a.rev = b.rev
Run Code Online (Sandbox Code Playgroud)

我试过下面的代码:

return $model->find('all', [
    'fields' => $fields,
    'joins' => [
        [
            'table' => $model->useTable,
            'fields' => ['id','MAX(rev) as rev'],
            'alias' => 'max_rev_table',
            'type' => 'INNER',
            'group' => ['id'],
            'conditions' => [
                $model->name.'.id= max_rev_table.id',
                $model->name.'.rev = max_rev_table.rev'
            ]
        ]
    ],
    'conditions' => [
        $model->name.'.emp_id' => $empId
    ]
]);
Run Code Online (Sandbox Code Playgroud)

但似乎在生成的SQL中,joins不包括其下的字段.所以我没有得到 …

cakephp join subquery query-builder cakephp-2.x

1
推荐指数
1
解决办法
523
查看次数

标签 统计

cakephp ×1

cakephp-2.x ×1

join ×1

query-builder ×1

subquery ×1