How to use groupby having with DB::raw in Laravel Query Builder? (ok)

https://www.itsolutionstuff.com/post/how-to-use-groupby-having-with-dbraw-in-laravel-query-builderexample.html

Đọc bài viết này đã có dữ liệu test (tương ứng ví dụ 1)

How to use groupby having with DB::raw in Laravel Query Builder? (ok)

By Hardik Savani July 6, 2016 Category : LaravelPlayUnmuteLoaded: 1.17%FullscreenVDO.AI

We most probably require to use group by having because if you work on small project then it's not need to use generally. But if you work with big project like e-commerce, social or ERP level project then you may require to use having clause.

you can also use groupby having with db raw in laravel 6, laravel 7, laravel 8 and laravel 9 app.

having clause, we can use simply if we have to compare with number or static value like as bellow:

->having("total_quantity","<",10)

But we need to compare with 10 instead of column name then it can't directly use column name. At that time we should use DB::raw() with column name.

In this example i want to show minimum quantity items, I have two tables one items and another one items_count both mysql table layout is here:

items table:

items_count table:

I need to get that product has less quantity to min_quantity of items table, so we check get that items using bellow query:

Example

$items = DB::table("items")
            ->select("items.id","items.title"
                ,"items.min_quantity"
                ,DB::raw('SUM(items_count.quantity) as total_quantity'))
            ->join("items_count","items_count.id_item","=","items.id")
            ->groupBy("items.id")
            ->having("total_quantity","<",DB::raw("items.min_quantity"))
            ->get();
print_r($items);

You will find bellow output get only items no. 2.

Read Also: How to use groupby having with DB::raw in Laravel Query Builder?

Array

(

    [0] => stdClass Object

        (

            [id] => 2

            [title] => Itsolutionstuff.com

            [min_quantity] => 10

            [total_quantity] => 5

        )

)

Last updated

Was this helpful?