在mysql中,我使用的查询命令是:
SELECT * FROM (SELECT * FROM `storefirmware_updates` ORDER BY
`old_version` DESC) AS tmp_table GROUP BY store_id
我无法在Yii2中找到如何执行此操作的方法并将其传递给activeprovider。
我试过这样的事情:
$subquery = new Query;
$subquery->select(["*"]);
$subquery->from('storelist_update_view')->orderBy('old_version DESC');
$query = new Query;
$query->select(["*"]);
$query->from('storelist_update_view')->groupBy(['store_id' => $subquery]);
但我认为这是错误的。
答案 0 :(得分:1)
找到解决方案。
$subquery = new Query;
$subquery->select(['*']);
$subquery->from('storelist_update_view')->orderBy('old_version DESC');
$query = new Query;
$query->select(['*']);
$query->from(['table' => $subquery])->groupBy('store_id');
希望这可以帮助那些遇到同样问题的人。
答案 1 :(得分:0)
这里不需要子查询:
$Query = new Query;
$Query->select('*')
->from('storelist_update_view')
->groupBy('store_id')
->orderBy(['old_version' => SORT_DESC]);