Chà, OP không quá hữu ích, nhưng tôi sẽ thử! Tôi giả sử rằng votes
bảng chứa phiếu bầu thực tế của người dùng trên các mục. Điều này có nghĩa là nếu một mặt hàng không nhận được bất kỳ phiếu bầu nào, thì id mặt hàng đó (masterItemId
) không tồn tại trong votes
bảng.
Điều này có nghĩa là bảng phiếu bầu phải được kết hợp với bảng mục chính trên masterItemId
đồng ruộng. Tôi sẽ gọi bảng các mục chính:items
và giả sử rằng nó có một itemId
trường khớp với masterItemId
trong votes
bàn. Theo thuật ngữ 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
Tôi không quen thuộc với Laravel, nhưng bạn sẽ cần một cái gì đó như thế này, tuy nhiên, đừng coi đó là mã copy-paste:
$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();