【问题标题】:Yii CDbCriteria count related rowsYii CDbCriteria 计数相关行
【发布时间】:2014-10-07 15:11:44
【问题描述】:
我有一个 Product (id, name, ...) 模型和一个 OrderItem (id, order_id, product_id) 模型,我想通过最畅销的 OrderItem 模型对产品进行排序。
问题是:在 yii 中,STAT 关系在一个单独的查询中,所以我不能在 CDbCriteria 中对其进行排序,我怎样才能将此查询放在 CDbCriteria 中?
【问题讨论】:
标签:
php
mysql
activerecord
yii
【解决方案1】:
您是否尝试在 cdbcriteria 上进行连接,然后按顺序排序?
这样的事情可能会奏效:
<?php
$criteria->mergeWith([
'join' => ' INNER JOIN (SELECT COUNT(*) as qty, product_id FROM OrderItem oi GROUP BY product_id) oiInner ON oiInner.product_id=t.product_id',
'order' => ' oiInner.qty DESC'
]);
这样的事情应该可以工作!
不要忘记将此作为排序选项添加到 DataProvider 排序选项中!