SELECT list_items.text, list_items.item_id, SUM(votes.vote=1) AS upvote, SUM(votes.vote=-1) AS downvote
FROM list_items
LEFT JOIN votes ON list_items.item_id = votes.item_id
मुश्किल हिस्सा दो योग कॉल हैं - यदि वोट फ़ील्ड 1
. है , फिर vote=1
जो TRUE का मूल्यांकन करता है, जो MySQL SUM () के प्रयोजनों के लिए एक पूर्णांक 1 पर डाला जाएगा। यदि यह 1 नहीं है, तो यह असत्य का मूल्यांकन करता है जिसे 0 पर डाला जाता है और SUM() के लिए कुछ भी नहीं करता है।
ओह, होना चाहिए
GROUP BY list_items.item.id
अंत में।