首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cakephp检索最后一组数据

如何使用cakephp检索最后一组数据
EN

Stack Overflow用户
提问于 2015-06-24 08:00:59
回答 1查看 449关注 0票数 2

我的两张表图片如下,

我在TblB.php模型中有一个关系

代码语言:javascript
复制
public $belongsTo = array('TblA');

我使用MySQL数据库;

代码语言:javascript
复制
$results = $this->TblB->find('all', array('group' => array('TblB.tbl_a_id')));

实际上,我需要表(tbl_b)中的最后一组数据。

如何使用CakePHP解决查询。

EN

回答 1

Stack Overflow用户

发布于 2015-06-24 09:15:25

您需要运行以下SQL查询来获取所需的数据:

代码语言:javascript
复制
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构建子查询:-

代码语言:javascript
复制
$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'));

有关使用子查询检索数据的更多信息,请参见文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31020975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档