
大家好,我想在广播表上执行$ 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中实现这一点。
请提供您宝贵的反馈意见。
发布于 2015-02-09 14:34:58
Mysql查询你应该使用mysql查询来获取记录查询是
SELECT max(id),model_id FROM `model` group by model_id输出

Cakephp find查询
<?php
$data=$this->Brodcast->find('all',
'fields' => array('MAX(id) AS maxid', 'model_id'),
'group'=>'model_id'
);
?>发布于 2015-02-09 18:57:11
您好,您应该尝试将您的查询重写为:
$options['fields'] = array( 'MAX(id) AS maxid', 'model_id' );
$options['group'] = array( 'model_id' );
$this->ModelName->find( 'all', $options );发布于 2015-03-05 18:21:18
使用这个可以很好的工作:-
<?php
$data=$this->Brodcast->find('all',
'fields' => array('MAX(id) AS maxid', 'model_id'),
'group'=>'model_id'
);
?>https://stackoverflow.com/questions/28403683
复制相似问题