Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Unindo duas tabelas em um MySQL

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

A parte complicada são as duas chamadas de soma - Se o campo de votação for 1 , então vote=1 que avalia como TRUE, que o MySQL converterá em um inteiro 1 para os propósitos do SUM(). Se não for 1, ele será avaliado como false, que será convertido em 0 e não fará nada para o SUM().

opa, precisa ter
GROUP BY list_items.item.id

no final.