如何在 yii2 的 select 语句中使用子查询

how to use subquery inside select statement of yii2

我有如下疑问。

 $subQuery = (new Query())->select('is_approved')->from('user_requests')->where(['user_ref_id' => yii::$app->user->id])->andWhere(['AND','project_ref_id = p.project_id']);

这是我要在 select 语句中调用的子查询,如下所示

 $Query = (new Query())->select(['project_id','IF(p.project_type_ref_id = 2, '.$subQuery.', "" ) AS project_request_id'])
                             ->from('projects AS p');

如果我尝试执行查询,我在添加 $subQuery

的行中遇到以下错误
PHP Recoverable Error – yii\base\ErrorException
Object of class yii\db\Query could not be converted to string

如何在 select 语句中添加子查询。请帮忙。提前致谢!!

因为您想将第一个查询用作纯字符串添加

->createCommand()->rawSql;

给它。这会从查询对象中生成 SQL 语句。