Nou, de OP was niet al te nuttig, maar ik zal het proberen! Ik neem aan dat de votes tabel bevat de daadwerkelijke stemmen die door gebruikers op de items zijn uitgebracht. Dit betekent dat als een item geen enkele stem heeft gekregen, dat item-ID (masterItemId ) bestaat niet in de votes tafel.
Dit betekent dat de stemtabel moet worden toegevoegd aan de tabel met hoofditems op de masterItemId veld. Ik noem de tabel met hoofditems:items , en neem aan dat het een itemId . heeft veld dat overeenkomt met de masterItemId veld in de votes tafel. In SQL-termen:
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
Ik ben niet bekend met Laravel, maar je hebt zoiets nodig, maar behandel het niet als code voor kopiëren en plakken:
$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();