【发布时间】:2019-10-07 23:40:06
【问题描述】:
我正在浏览 CakePHP 文档,但找不到任何解释您如何在 MySQL 语句中执行子查询的地方。我基本上想将每个用户拥有的积分数计算为一个字段,但目前它正在将所有用户的积分累积到一个字段中:
$this->Users->find()
->contain(['Plans','Products'])
->contain('Credits', function ($q) {
return $q->select(['count' => $q->func()->count('*')]);
})->group(['Users.id']);
我尝试创建的查询更像:
SELECT *, (SELECT COUNT(*) FROM credits Credits WHERE Credits.user_id = Users.id) as credit_count FROM users Users group by Users.id ASC
【问题讨论】:
-
Credits是什么类型的关联?hasMany? -
@ndm 是的
标签: mysql sql cakephp orm cakephp-3.0