Yii2中的子查询顺序和分组依据

时间:2016-02-10 12:01:26

标签: mysql yii2

在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]);

但我认为这是错误的。

2 个答案:

答案 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]);