Bem, o OP não foi muito útil, mas vou tentar! Presumo que os
votes
tabela contém votos reais dos usuários sobre os itens. Isso significa que, se um item não recebeu nenhum voto, então o id do item (masterItemId
) não existe nos votes
tabela. Isso significa que a tabela de votos deve ser deixada unida na tabela de itens principais no
masterItemId
campo. Vou chamar a tabela de itens principais:items
, e suponha que ele tenha um itemId
campo que corresponde ao masterItemId
campo no votes
tabela. Em termos de SQL: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
Não estou familiarizado com o Laravel, mas você vai precisar de algo assim, porém não trate é como copiar e colar o código:
$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();