Nå, OP var ikke alt for nyttigt, men jeg vil give det et skud! Jeg antager, at votes tabel indeholder faktiske stemmer afgivet af brugere på emnerne. Dette betyder, at hvis en vare ikke modtog nogen stemme, så vare-id'et (masterItemId ) findes ikke i votes tabel.
Dette betyder, at stemmetabellen skal efterlades samlet på hovedposttabellen på masterItemId Mark. Jeg kalder hovedelementtabellen:items , og antag, at den har et itemId felt, der matcher masterItemId feltet i votes bord. I SQL-termer:
select items.itemId, ifnull(sum(votes.votes),0) as votesSum
from items left join votes on items.itemId=votes.masterItemId
where votes.voteDate between ... and ... and <other conditions>
group by items.itemId
Jeg er ikke bekendt med Laravel, men du får brug for noget som dette, men det skal ikke behandles som copy-paste kode:
$multipleitems = DB::table('items')
->leftJoin('votes','items.itemId','=','votes.masterItemId')
->select('items.itemId',DB::raw('ifnull(sum(votes.votes),0) as voteSum'))
->whereBetween('votes.voteDate',array($startDate,$endDate))
->where($condition)
->groupBy('items.temId')
->get();