खैर, ओपी बहुत मददगार नहीं था, लेकिन मैं इसे एक शॉट दूंगा! मुझे लगता है, कि votes
तालिका में आइटम पर उपयोगकर्ताओं द्वारा डाले गए वास्तविक वोट होते हैं। इसका मतलब है, कि अगर किसी आइटम को कोई वोट नहीं मिला, तो वह आइटम आईडी (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
मैं लारवेल से परिचित नहीं हूं, लेकिन आपको कुछ इस तरह की आवश्यकता होगी, हालांकि नॉट ट्रीट इज कॉपी-पेस्ट कोड:
$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();