Ehi there, I’m new in laravel and I have some issues with laravel query builder. The query I would like to build is this one:
SELECT SUM(transactions.amount) FROM transactions JOIN categories ON transactions.category_id == categories.id WHERE categories.kind == "1"
I tried building this but isn’t working and I can’t figure out where I am wrong.
$purchases = DB::table('transactions')->sum('transactions.amount') ->join('categories', 'transactions.category_id', '=', 'categories.id') ->where('categories.kind', '=', 1) ->select('transactions.amount') ->get();
I would like to get all the transactions that have the attribute “kind” equal to 1 and save it in a variable. Here’s the db structure:
transactions(id, name, amount, category_id)
categories(id, name, kind)
Advertisement
Answer
You don’t need to use select()
or get()
when using the aggregate method as sum
:
$purchases = DB::table('transactions') ->join('categories', 'transactions.category_id', '=', 'categories.id') ->where('categories.kind', '=', 1) ->sum('transactions.amount');