【发布时间】:2016-11-23 10:59:30
【问题描述】:
我可以转换这个查询吗 "SELECT * FROM (SELECT * FROM blog_post ORDER BY data DESC) blog_post GROUP BY blog_id LIMIT 2"
进入 Yii2 活动记录查询?
谢谢 女士
【问题讨论】:
标签: activerecord yii2 subquery
我可以转换这个查询吗 "SELECT * FROM (SELECT * FROM blog_post ORDER BY data DESC) blog_post GROUP BY blog_id LIMIT 2"
进入 Yii2 活动记录查询?
谢谢 女士
【问题讨论】:
标签: activerecord yii2 subquery
我想你可以这样做:
Ⅰ:在您选择的地方创建一个子查询。
$blogPostQuery = BlogPostModel::find()->orderBy(['data' => SORT_DESC]);
Ⅱ:获取activeRecord结果。 from参数是一个exist Query。
$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 表达式
试一试!希望对你有用:))
【讨论】:
博文::find() ->orderBy('数据 DESC') ->groupBy('blog_id') ->限制(2) ->所有();
【讨论】:
是的,您可以这样做。 Yii2 为我们提供了出色的库支持。
您可以形成 custom sql 查询并在findBySql() 中传递此查询,例如:
$sql = "Some query/nested query";
$result = ModelClass::findBySql($sql);
访问 Yii 官方documentation.
【讨论】: