0

我正在尝试使用统计查询关联 Yii 中的 3 个表。我需要显示登录用户发布的每个请求的最低费率,条件是“通信”=hai 和“国家”= 中国,其中通信和国家/地区是 3 个不同表的属性。我该如何实施?有什么方法可以在统计查询的情况下添加AND/Or。我的代码如图所示..

   return array(                     
                         'serviceproposals' => array(self::HAS_MANY, 'Serviceproposal', 'ServiceRequestID'),
                         'user' => array(self::BELONGS_TO, 'Buyer', 'user_id'),
                         'postCount'=>array(self::STAT, 'serviceproposal', 'ServiceRequestID'),
                         'maxvalue'=>array(self::STAT, 'serviceproposal', 'ServiceRequestID','select'=>'MAX(proposal_amount)'),
                         'minvalue'=>array(self::STAT, 'serviceproposal', 'ServiceRequestID','select'=>'MIN(proposal_amount)', 'condition' => 'Communications ="hai"'),
                    );

数据库:

User[user_id,name,password,Country],
Provider[user_id,providercompany,providerdetails],
Buyer[user_id,contactinfo],
ServiceRequest[ServiceRequestID,Buyer.user_id,details,date],
ServiceProposal[ServiceProposalId,ServiceRequestID,Provider.user_id,services,propsal_rate,Communications]
4

1 回答 1

0

在 Yii 中,如果我们使用 STAT 查询,通常查询的性能会受到影响,因为 STAT 很慢。您可以在 CDBCriteria 选择选项中使用 COUNT 而不是添加关系,并且要使用它,我们需要将该属性声明到模型中 就像在 Serviceproposal 模型中一样,您需要添加属性 public $postCount; 因此,您可以使用输出中的计数值。

于 2012-12-08T07:49:50.410 回答