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();