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
Phần khó là hai lệnh gọi tổng - Nếu trường biểu quyết là 1
, sau đó vote=1
đánh giá là TRUE, MySQL sẽ truyền thành số nguyên 1 cho mục đích của hàm SUM (). Nếu nó không phải là 1, thì nó sẽ đánh giá là false, được chuyển thành 0 và không có tác dụng gì đối với SUM ().
rất tiếc, cần phải có
GROUP BY list_items.item.id
ở phần cuối.