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 ще приведе към цяло число 1 за целите на SUM(). Ако не е 1, тогава се оценява на false, което се прехвърля на 0 и не прави нищо за SUM().
опа, трябва да има
GROUP BY list_items.item.id
в края.