如何选择计数并使用Laravel的流畅查询构建器?

时间:2016-12-26 11:53:52

标签: mysql laravel-5 eloquent

在我的情况下

$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?

任何建议?

3 个答案:

答案 0 :(得分:2)

您可以将havingRaw用作:

->havingRaw('price_count = 1')

OR

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

OR

  

havingRaw方法可用于将原始字符串设置为having子句的值。

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

答案 1 :(得分:1)

您无法根据需要使用汇总函数值,而不是"其中"你可以使用"有"。

希望这会对你有所帮助。

答案 2 :(得分:1)

您无法根据需要使用汇总函数值,而不能在“拥有”中使用“where”。

您可以将havingRaw用作:

->havingRaw('price_count = 1')

OR

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

OR

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