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
Den vanskelige del er de to sum-kald - hvis stemmefeltet er 1
, derefter vote=1
som evalueres til TRUE, som MySQL vil caste til et heltal 1 med henblik på SUM(). Hvis det ikke er 1, så evalueres det til falsk, som er castet til 0 og ikke gør noget for SUM().
hov, skal have
GROUP BY list_items.item.id
til sidst.