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
Het lastige zijn de twee somoproepen - Als het stemveld 1
. is , dan vote=1
die evalueert naar TRUE, die MySQL zal casten naar een geheel getal 1 voor de doeleinden van de SUM(). Als het niet 1 is, evalueert het naar onwaar, wat naar een 0 wordt gecast en niets doet voor de SUM().
oeps, moet hebben
GROUP BY list_items.item.id
aan het einde.