Mysql
 sql >> Base de données >  >> RDS >> Mysql

Joindre deux tables dans un 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

La partie délicate sont les deux appels de somme - Si le champ de vote est 1 , puis vote=1 qui s'évalue à TRUE, que MySQL convertira en entier 1 pour les besoins de SUM(). Si ce n'est pas 1, alors il est évalué à false qui est converti en 0 et ne fait rien pour SUM().

oups, il faut avoir

GROUP BY list_items.item.id

à la fin.