我的两张表图片如下,

我在TblB.php模型中有一个关系
public $belongsTo = array('TblA');我使用MySQL数据库;
$results = $this->TblB->find('all', array('group' => array('TblB.tbl_a_id')));实际上,我需要表(tbl_b)中的最后一组数据。
如何使用CakePHP解决查询。
发布于 2015-06-24 09:15:25
您需要运行以下SQL查询来获取所需的数据:
SELECT TblB.* FROM tbl_b AS TblB WHERE TblB.id = (
SELECT TblB2.id FROM tbl_b AS TblB2
WHERE TblB2.tbl_a_id = TblB.tbl_a_id
ORDER BY TblB2.id DESC
LIMIT 1
)
ORDER BY TblB.id ASC有关此操作,请参见木琴。
要在CakePHP中这样做,您需要使用Cake的buildStatement构建子查询:-
$db = $this->TblB->getDataSource();
$subQuery = $db->buildStatement(
array(
'fields' => array('"TblB2"."id"'),
'table' => $db->fullTableName($this->TblB),
'alias' => 'TblB2',
'limit' => 1,
'offset' => null,
'joins' => array(),
'conditions' => array('"TblB"."tbl_a_id" = "TblB2"."tbl_a_id"'),
'order' => '"TblB2"."id" DESC',
'group' => null
)
);
$subQueryExpression = $db->expression($subQuery);
$conditions[] = $subQueryExpression;
$data = $this->TblB->find('all', compact('conditions'));有关使用子查询检索数据的更多信息,请参见文档。
https://stackoverflow.com/questions/31020975
复制相似问题