Yii无法检索最大列值

时间:2011-08-19 02:26:47

标签: select yii max relational

我有两个模型,一个是拍卖,另一个是出价

拍卖有很多出价。它们与 Bid

中的外键auction_id相关联

现在,我想找到每次竞价的出价价格的最大值。

$dataProvider = new CActiveDataProvider('Auction', array('criteria' => array(
                    'with' => array(
                        'bids' => array(
                            'alias'=>'b',
                            'group' => 'auction_id',
                            'select' => 'max(b.price) as maxprice'
                        )
                   )
             )
        )
);

我在Auction的模型类中定义了一个 maxprice 属性。

但是,如果我尝试检索 maxprice 属性,则返回 NULL

更具体地说,我将 $ dataprovider 渲染到视图页面,它无法获得 maxprice 属性。

PS:

我在mysql中执行了查询,查询结果证明是正确的。

所以,Yii代码肯定有问题

SQL代码:

SELECT `t`.`id` , max(b.price) as maxprice

FROM `auction` `t` 

LEFT OUTER JOIN `bid` `b` ON (`b`.`auction_id`=`t`.`id`)  GROUP BY auction_id

1 个答案:

答案 0 :(得分:1)

在关系之前输入您想要的值,如下所示:

$dataProvider = new CActiveDataProvider('Auction', array('criteria' => array(
    'select' => 't.*, max(b.price) as maxprice',
    'with' => array(
        'bids' => array(
            'alias'=>'b',
            'group' => 'auction_id',
            'together'=>true,
        )

如果您愿意,可以将“t。*”替换为特定的字段名称。

或者您只需在拍卖模型上使用选择,加入和分组属性,并完全跳过关系。