2016-02-10 3 views
0

В MySQL команда запроса Я использую это:подзапросов в порядке Yii2 по группе и

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 select -> select * из таблицы group by store_id order by old_version DESC – sagi

ответ

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'); 

Надеюсь, это поможет кому-то, столкнувшись с той же проблемой.

0

Нет необходимости подзапроса здесь:

$Query = new Query; 
$Query->select('*') 
     ->from('storelist_update_view') 
     ->groupBy('store_id') 
     ->orderBy(['old_version' => SORT_DESC]); 
+1

Спасибо за ответ, но заказ не соблюден – Gibs

Смежные вопросы