AR model
Campaign
id
company_id
status
with next scopes:
/**
* @return array
*/
public function scopes(){
return array(
'active'=>array(
'criteria'=>'campaign.status=:status2',
'params'=>array(':status2'=>self::STATUS_ACTIVE),
'alias'=>'campaign',
),
);
}
related AR model:
Company
id
status
with next scopes:
/**
* @return array
*/
public function scopes(){
return array(
'active'=>array(
'condition'=>'company.status=:status1',
'params'=>array(':status1'=>self::STATUS_ACTIVE),
'alias'=>'company',
),
);
}
for query minification I selected only ID:
Campaign::model()->active()->with(array('company:active'=>array(
'select'=>'id'
)))->find(array(
'select'=>'id',
));
leads to error with next log:
2010/03/16 14:49:01 [trace] [system.db.CDbCommand] Querying SQL: SELECT `campaign`.`id` AS `t0_c0`, `company`.`id` AS `t1_c0` FROM `ad_campaign` `campaign` LEFT OUTER JOIN `ad_company` `company` ON (`campaign`.`company_id`=`company`.`id`) WHERE (company.status=:status). Bind with parameter :ycp0=1, :status=1
2010/03/16 14:49:01 [error] [system.db.CDbCommand] Error in querying SQL: SELECT `campaign`.`id` AS `t0_c0`, `company`.`id` AS `t1_c0` FROM `ad_campaign` `campaign` LEFT OUTER JOIN `ad_company` `company` ON (`campaign`.`company_id`=`company`.`id`) WHERE (company.status=:status). Bind with parameter :ycp0=1, :status=1