大家好 我想要执行$ this-> Model-> find(' all');在广播表上,我只需要获取每个模型的最后一个广播ID,如模型12的4和模型13的6,我通过使用如下的简单mysql查询完成此操作。
SELECT * FROM broadcasts
WHERE id IN(SELECT MAX(id)FROM broadcasts
GROUP BY model_id
);
但我想知道如何在cakephp中实现它。
请提供宝贵的意见。
答案 0 :(得分:6)
Mysql查询 你应该使用mysql查询获取记录 查询是
SELECT max(id),model_id FROM `model` group by model_id
<?php
$data=$this->Brodcast->find('all',
'fields' => array('MAX(id) AS maxid', 'model_id'),
'group'=>'model_id'
);
?>
答案 1 :(得分:0)
您好您应该尝试将您的查询重写为: -
$options['fields'] = array( 'MAX(id) AS maxid', 'model_id' );
$options['group'] = array( 'model_id' );
$this->ModelName->find( 'all', $options );
答案 2 :(得分:0)
使用它可以正常工作: -
<?php
$data=$this->Brodcast->find('all',
'fields' => array('MAX(id) AS maxid', 'model_id'),
'group'=>'model_id'
);
?>