【发布时间】:2011-12-07 10:33:06
【问题描述】:
我有两个模型处于 1:n 关系,我只想加载相关项目的计数。
第一个是与“AdEvent”(许多)相关的表格/模型“Ad”(一个)。 AdEvents 有一个外键“ad_id”。
在控制器中我可以这样使用它,它会加载相关的 AdEvent 记录。
$this->Ad->bindModel(array('hasMany' => array(
'AdEvent' => array(
'className' => 'AdEvent',
'foreignKey' => 'ad_id',
))));
现在我只需要没有数据的计数,我尝试使用参数“字段”和“分组”一个 COUNT() 语句,但在这种情况下结果为空。我也将关系更改为“hasOne”,但没有效果。
知道如何使用蛋糕魔法来做到这一点吗?
编辑: 使用简单的 SQL,它看起来像这样(我简化了它,a.id 而不是 a.*):
SELECT a.id, COUNT(e.id) AS count_events
FROM cake.admanager_ads AS a
JOIN ad_events AS e ON e.ad_id = a.id
GROUP BY a.id
LIMIT 50;
【问题讨论】: