gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:30:47 24 4
gpt4 key购买 nike

我的两张 table 图片如下,

enter image description here

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

public $belongsTo = array('TblA');

我用的是MySQL数据库;

$results = $this->TblB->find('all', array('group' => array('TblB.tbl_a_id')));

实际上,我需要表(tbl_b)中的最后一组数据。
如何使用 CakePHP 解决查询。

最佳答案

您想运行以下 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

参见 sqlfiddle为此行动。

要在 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'));

有关 retrieving data using a sub-query 的更多信息,请参阅文档.

关于mysql - 如何使用cakephp检索最后一组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com