我有查询:
$popular = self::find()
->from(self::tableName() . ' as t')
->with('user');
当我尝试打印sql时:
$popular->createCommand()->rawSql
它给了我:
SELECT * FROM "themes" "t"
我可以通过“join”获得完整的原始查询:
SELECT * FROM "themes" "t" LEFT JOIN "users" u ON u.user_id = t.author_id
答案 0 :(得分:5)
已经回答here。
您可var_dump
为ActiveQuery
个实例生成SQL,如下所示:
var_dump($query->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);
但是,我建议使用内置的调试模型和面板。
P.S。对于您的特定查询 - with()
不执行JOIN
,而是执行其他查询并使用实际相关记录填充关系属性。要使用JOIN
,您需要使用joinWith()
明确指定它。
答案 1 :(得分:0)
希望这会有所帮助
$query = new Query;
$query ->select(['themes.c1 AS d1', 'themes.c2 As d2..'])
->from('themes')
->leftJoin('users', 'users.user_id = themes.author_id');
$command = $query->createCommand();
$data = $command->queryAll();