Php yii中的子查询
我正在尝试为子查询编码Php yii中的子查询,php,mysql,yii,Php,Mysql,Yii,我正在尝试为子查询编码 select * from mob_reg where name in (select name from auth where parent ="naga"); 我遵循了所有这些答案 [子记录Yii [如何为CActiveDataProvider的条件设置多个条件 但是我得到了foreach()的无效参数 $model=new MobReg('search'); $model->unsetAttributes(); $criteria=新的CDbCriteria(阵列
select * from mob_reg where name in (select name from auth where
parent ="naga");
我遵循了所有这些答案
[子记录Yii
[如何为CActiveDataProvider的条件设置多个条件
但是我得到了foreach()的无效参数
$model=new MobReg('search');
$model->unsetAttributes();
$criteria=新的CDbCriteria(阵列)(
'选择'=>'t.imei,t.emp_name,t.email,t.name',
'join'=>'内部连接身份验证ON(t.name=auth.name和auth.parent=:parent)',
“组”=>“t.id”,
'params'=>array(':parent'=>naga')
));
$dataProvider=新的CActiveDataProvider('MobReg',数组(
“条件”=>$criteria,
));
我要换什么?知道吗?我哪里出了问题
我想我面临的问题是在引用两个不同的表时,一个在子查询中,另一个在主查询中。如何处理这一个呢?关于以下内容:
$criteria = new CDbCriteria(array(
'select' => 't.imei, t.emp_name, t.email, t.name',
'join' => 'INNER JOIN auth ON (t.name = auth.name AND auth.parent = :parent)',
'group' => 't.id',
'params' => array(':parent' => 'naga')
));
$dataProvider = new CActiveDataProvider('MobReg', array(
'criteria' => $criteria,
));
这对您有用吗?您考虑过联接吗?正确使用索引应该会更快。CDbCommand无法执行SQL语句:SQLSTATE[42S22]:找不到列:1054“on子句”中的未知列“mob_reg.name”。虽然我在mob_reg表中有name列,但可能是因为该表有别名。我已更新了代码,请重试。
$criteria = new CDbCriteria(array(
'select' => 't.imei, t.emp_name, t.email, t.name',
'join' => 'INNER JOIN auth ON (t.name = auth.name AND auth.parent = :parent)',
'group' => 't.id',
'params' => array(':parent' => 'naga')
));
$dataProvider = new CActiveDataProvider('MobReg', array(
'criteria' => $criteria,
));