我正在使用yii框架。我有一个关系
'revCount'=>array(self::STAT, 'Review','rid','condition'=>'status=1')//count review for each restaurant
现在我想通过点评来获取所有餐厅的订单。
Restaurant::model()->findAll('with'=>'revCount');
我还需要添加什么才能通过评论计算所有餐厅?
答案 0 :(得分:1)
这是您使用单个查询加入其他模型的方法:
Restaurant::model()->with('revCount')->findAll();
但我认为你想要的不是加入模型,而只是按它排序。与此类似:
Restaurant::model()->with(array(
'reviews'=>array(
// we don't want to select reviews
'select'=>false,
// but want to get only reviews with status=1
'joinType'=>'INNER JOIN',
'condition'=>'reviews.status=1',
),
))->findAll();
答案 1 :(得分:1)
您应该可以执行以下操作..
Restaurant::model()->findAll('with'=>'revCount', 'select' => '(SELECT COUNT(*) FROM review WHERE rid = t.id AND status = 1) AS revCount');