php - yii 中的子查询

标签 php mysql yii

我正在尝试为子查询编写代码

select * from mob_reg where name in (select name from auth where
parent ="naga");

我遵循了所有这些答案

[子查询 ActiveRecord Yii [如何为CActiveDataProvider设置多个条件?

但是我得到了 foreach() 的无效参数。

   $model=new MobReg('search');
$model->unsetAttributes();


$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,
));

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'mob-reg-grid',
    'dataProvider'=>$dataProvider,
    'filter'=>$model,
    'columns'=>array(
        'imei',
        'emp_name',
                'email',
               'name',
        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>

我必须更换什么?任何想法?我哪里出错了?

我想我面临的问题是引用两个不同的表,一个在子查询中,另一个在主查询中。怎么处理这个?

最佳答案

类似这样的事情怎么样:

$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,
));

这对你有用吗?

关于php - yii 中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786030/

相关文章:

php - 将功能更改为 PDO

yii 自定义错误页面,如 404、403、500

javascript - 使用AJAX对MySQL搜索结果进行排序

mysql - 如何以原子方式将行从一个表移动到另一个表?

mysql - 为什么我的 case 语句返回 NULL 值,而我认为它不应该返回?

Yii 包含 CSS 和 javascript 文件

php - 授予对 Yii2 模块的访问权限

php - 带有 AND 条件的 LIKE 的 sql 查询以显示值

PHP header 重定向问题

php - Yii 关系在查询中生成 GROUP BY 子句