我可以转换此查询吗? “SELECT * FROM(SELECT * FROM blog_post ORDER BY data DESC)blog_post GROUP BY blog_id LIMIT 2”
进入Yii2活动记录查询?
THX MS
答案 0 :(得分:4)
是的,你可以这样做。 Yii2给了我们一个很棒的图书馆支持。
您可以形成自定义 sql 查询,并在findBySql()
中传递此查询,如:
$sql = "Some query/nested query";
$result = ModelClass::findBySql($sql);
访问Yii官方documentation。
答案 1 :(得分:0)
志文章::找到() - > orderBy('数据DESC') - > GROUPBY(' blog_id') - >极限(2) - >所有();
答案 2 :(得分:0)
我想你可以这样做:
Ⅰ:创建一个可供选择的子查询。
$blogPostQuery = BlogPostModel::find()->orderBy(['data' => SORT_DESC]);
Ⅱ:获取activeRecord结果。 来自 参数是一个存在的查询。
$models = (new yii\db\Query)
->from(['blog_post ' => $blogPostQuery])
->groupBy(['blog_id'])
->limit(2)
->all();
PS: 见Yii Api中的yii\db\query->from()-detail ;
(public $ this from($ tables)) $ tables 可以是字符串(例如'user')或数组(例如['user', 'profile'])指定一个或多个表名···或子查询或DB表达式
试一试!我希望它对你有用:))