さて、OPはあまり役に立ちませんでしたが、私はそれを試してみます! votes
だと思います 表には、ユーザーがアイテムに投じた実際の投票が含まれています。つまり、アイテムが投票を受け取らなかった場合、そのアイテムID(masterItemId
)votes
には存在しません テーブル。
これは、投票テーブルをmasterItemId
のメインアイテムテーブルに結合したままにする必要があることを意味します。 分野。メインアイテムテーブルをitems
と呼びます。 、およびitemId
があると想定します masterItemId
に一致するフィールド votes
のフィールド テーブル。 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
私はLaravelに精通していませんが、このようなものが必要になりますが、コピーアンドペーストコードとして扱わないでください:
$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();