Как выбрать количество и использовать где с свободно построителем запросов Laravel?

В моем случае

$products = $products->select(array('products.*', \DB::raw('COUNT(extra_fields.price) as price_count')))->leftJoin('extra_fields', 'products.id', '=', 'extra_fields.item_id')
                    ->where('item_type', 'App\Models\Product')
                    ->whereRaw("price = '0'")
                    ->whereRaw("price_count = 1")
                    ->groupBy('item_id')
                    ->groupBy('price')

                ;

когда я хочу использовать { price_count } где или где я получил:

Column not found: 1054 Unknown column 'price_count'

price_count работает только так:

->orderBy('price_count')

как я могу использовать price_count на where или whereRaw?

любой совет?

3 ответа

Решение

Ты можешь использовать havingRaw как:

->havingRaw('price_count = 1')

ИЛИ ЖЕ

->having('price_count', '=', 1)

ИЛИ ЖЕ

havingRaw метод может быть использован для установки необработанной строки в качестве значения having пункт.

->havingRaw('COUNT(extra_fields.price) = 1')

Вы не можете использовать значение функции итога, как хотите, вместо "где" вы можете использовать в "иметь".

Ты можешь использовать havingRaw как:

->havingRaw('price_count = 1')

ИЛИ ЖЕ

->having('price_count', '=', 1)

ИЛИ ЖЕ

->havingRaw('COUNT(extra_fields.price) = 1')

Вы не можете использовать значение функции итога, как хотите, вместо "где" вы можете использовать в "иметь".

Надеюсь, что это поможет вам.

Другие вопросы по тегам