Yii stat关系多列

时间:2014-08-02 11:27:36

标签: activerecord yii

如何定义Yii模型关系以从单个查询中检索最大和最小价格?

SELECT MAX(`price`) as `maxPrice`, MIN(`price`) as `minPrice`
FROM `price` WHERE object_id = :objectId

object_id - 外键。

我想使用关系来获取最低和最高价格,例如$object->minPrice$object->maxPrice。 我在寻找统计关系,但这种关系只允许检索单列。

1 个答案:

答案 0 :(得分:0)

在你的模型关系函数中,你可以做这样的事情

class MyModel extends ActiveRecord {
...

    public function relations(){
        return array(
           ...
           'maxPrice'=>array(self::STAT, 'Price','object_id','select'=>'MAX(price)'),
           'minPrice'=>array(self::STAT, 'Price','object_id','select'=>'MIN(price)'),
        );
    }

}
除了COUNT(*)之外,

STAT关系支持其他统计表达式,这是默认值,请参阅Statistical Queries上的文档和CStatRelation上的API参考