1
我要執行這個查詢子查詢中andFilterWhere在yii2
select count(id) as numberofcompanies, sum(offered_value) as total_offered_value from campaign_comapany
where (campaign_id in (select id from campaing where user_id = current_user) or campaing_company.sp_user_id = current_user)
and campaign_company.status = '3'
我寫這樣的查詢中yii2-
$query->select(['count(id) as numberofcompanies','sum(offered_value) as total_offered_value'])
->from('campaign_company')
->andFilterWhere(['or',['in','campaign_id',(new yii\db\Query())->select(['id'])->from('campaign')->where(['=','user_id',Yii::$app->user->id])],['=','campaign_company.sp_user_id',Yii::$app->user->id]])
->andWhere(['=','status','3'])
->one();
但它給我的錯誤與unknow column campaign_company.user_id
但工作,如果我只需使用where
如下 -
$query->select(['count(id) as numberofcompanies','sum(offered_value) as total_offered_value'])
->from('campaign_company')
->where(['in','campaign_id',(new yii\db\Query())->select(['id'])->from('campaign')->where(['=','user_id',Yii::$app->user->id])])
->andWhere(['=','status','3'])
->one();
什麼shoul d我做得到結果提到sql查詢,我不想打兩次數據庫服務器,提前致謝
怎麼樣使用DAO,像這樣$ =後的Yii :: $ APP- > db-> createCommand('SELECT * FROM post WHERE id = 1') - > queryOne(); (見yii的指南) – dimis283