Php 创建此查询

Php 创建此查询,php,yii,Php,Yii,将createCommand转换为CDbCriteria 如何使用CDbCriteria yii创建此查询 T1型号: public function relations() { return array( 'kCode0' => array(self::BELONGS_TO, 'T2', 'kCode'), ); } T2型号: return array( 'main' => array(self::BELONGS_TO, 'T3',

将createCommand转换为CDbCriteria

如何使用CDbCriteria yii创建此查询

T1型号:

public function relations()
{
    return array(
        'kCode0' => array(self::BELONGS_TO, 'T2', 'kCode'),
    );
}
T2型号:

return array(
       'main' => array(self::BELONGS_TO, 'T3', 'mymain'),
    );
换句话说,我要转换此代码:

$result = Yii::app()->db->createCommand()
                ->select('SUM(f.mablagh) as kol,k.code,k.name,m.name AS mName,m.code AS mCode')
                ->from('T1 AS f')
                ->join('T2 AS k' ,'k.code=f.kCode')
                ->join('T3 AS m' ,'m.code=k.main')
                ->group('k.main')
                ->queryAll();
致:


如果要使用条件,则可以在不使用任何其他模型关系的情况下使用它:

$criteria   = new CDbCriteria;
$criteria->select = "SUM(t.mablagh) as kol,k.code,k.name,m.name AS mName,m.code AS mCode";
$criteria->join = "LEFT JOIN T2 AS k ON k.code=t.kCode LEFT JOIN T3 AS m ON m.code=k.main";
$criteria->group = "k.main";
$result = T1::model()->findAll($criteria);

谢谢,但打印结果数据T2、T3不存在!您需要将其更改为表名。如果您使用的是类,您可以使用T2::model->tableName。可以解释一下,T2和T3是表吗?你不明白什么?
$criteria   = new CDbCriteria;
.
.
.
.
$result = T1::model()->findAll($criteria);
$criteria   = new CDbCriteria;
$criteria->select = "SUM(t.mablagh) as kol,k.code,k.name,m.name AS mName,m.code AS mCode";
$criteria->join = "LEFT JOIN T2 AS k ON k.code=t.kCode LEFT JOIN T3 AS m ON m.code=k.main";
$criteria->group = "k.main";
$result = T1::model()->findAll($criteria);