sql >> Base de Datos >  >> RDS >> Mysql

Uniendo dos tablas en 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 parte complicada son las dos llamadas de suma:si el campo de voto es 1 , luego vote=1 que se evalúa como VERDADERO, que MySQL convertirá en un número entero 1 para los fines de SUM(). Si no es 1, entonces se evalúa como falso, que se convierte en 0 y no hace nada por SUM().

Vaya, necesita tener

GROUP BY list_items.item.id

al final.