sql >> データベース >  >> RDS >> Mysql

yii CDbCriteriaでmysqlサブクエリを変換する方法は?

    ここに小さな例があります(私が構造/関係を正しく理解している場合):

    //Model UserGroupDataRevision
    class UserGroupDataRevision extends CActiveRecord 
    {
         public function relations()
         {
            return array(
                'userGroup' => array(self::BELONGS_TO, 'UserGroup', 'group_id'),
                'userGroupData' => array(self::BELONGS_TO, 'UserGroupData', 'group_data_id'),
            );
         }
         //....
    }
    
    //model UserGroup
    class UserGroup extends CActiveRecord {...}
    //model UserGroupData
    class UserGroupData extends CActiveRecord {...}
    

    基準:

    $criteria = new CDbCriteria();
    $criteria->select = 'ugdr.revision_version'; // other fields
    $criteria->alias = 'ugdr';
    $criteria->with = array(
            'userGroup' => array(
            'alias' => 'ug',
            'together' => true,
            'select' => array('ug.user_id'), // other fields
        ),
        'userGroupData' => array(
            'alias'=> 'ugd',
            'together' => true,
            'select'=>array('ugd.group_id, ugd.group_name'), // other fields
        ),
    );
    $criteria->group = 'rgd.group_id';
    $criteria->order = 'rgd.group_id'; // or something else
    

    データチェック:

    $dataProvider = new CActiveDataProvider('UserGroupDataRevision', array(
          'criteria' => $criteria,
       )
    );
    var_dump($dataProvider->getData());
    die();
    



    1. オンプレミスからAWSRDSにPostgreSQLデータベースを移行する際の一般的なエラー

    2. 安全な方法でSQLインジェクション攻撃を防ぐ方法

    3. データベースを削除できません

    4. Eloquent groupByは、Laravel5.3で有効なSQLクエリを使用してSQLSTATE[42000]を作成します