【问题标题】: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 排序选项中!

    【讨论】:

    • 这可行,但现在我只得到那些已经订购的产品
    猜你喜欢
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多