Как выбрать количество и использовать где с свободно построителем запросов 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')
Вы не можете использовать значение функции итога, как хотите, вместо "где" вы можете использовать в "иметь".
Надеюсь, что это поможет вам.