-1
我有一个产品(id,name,...)模型,和一个OrderItem(id,order_id,product_id)模型,我想通过最畅销的产品排序我可以从OrderItem模型。Yii CDbCriteria计数相关行
问题是:在yii STAT关系是在一个单独的查询,所以我不能排序它在CDbCriteria,我怎么能把这个查询在CDbCriteria?
我有一个产品(id,name,...)模型,和一个OrderItem(id,order_id,product_id)模型,我想通过最畅销的产品排序我可以从OrderItem模型。Yii CDbCriteria计数相关行
问题是:在yii STAT关系是在一个单独的查询,所以我不能排序它在CDbCriteria,我怎么能把这个查询在CDbCriteria?
您是否尝试在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排序选项的排序选项!
这个工程,但现在我只得到那些已经订购的产品 – 2014-10-07 18:40:05
尝试左加入! – 2016-09-13 02:23:51