Как я могу найти лучших продавцов, группируя складские единицы в Laravel?

Oneliner:

Thread.currentThread().getStackTrace()[2].getMethodName()

Обратите внимание, что вам может потребоваться заменить 2 на 1.

0
задан Jaquarh 16 January 2019 в 20:01
поделиться

1 ответ

Вы можете достичь этого с помощью подзапроса.

$skus = ProductSku::selectRaw('COUNT(*)')
    ->whereColumn('product_id', 'product_list.id')
    ->getQuery();

$products = ProductList::select('*')
    ->selectSub($skus, 'skus_count')
    ->orderBy('skus_count', 'DESC')
    ->take(5)
    ->get();

Это было бы намного проще, если бы ProductList имел отношения с ProductSku. Тогда вы можете просто сделать это:

Например, в App\ProductList вы можете получить что-то вроде этого:

public function skus()
{
    return $this->hasMany(ProductSku::class);
}

.. тогда ваш запрос будет просто:

[ 112]

.. который выдаст тот же запрос, что и выше. Я не совсем уверен в названиях ваших моделей. Вы должны изменить это соответственно.

0
ответ дан Mozammil 16 January 2019 в 20:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: