Mysql
 sql >> Database >  >> RDS >> Mysql

Unire due tabelle in 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 difficile sono le due chiamate somma - Se il campo del voto è 1 , quindi vote=1 che restituisce TRUE, che MySQL eseguirà il cast su un numero intero 1 ai fini di SUM(). Se non è 1, restituisce false, che viene convertito a 0 e non fa nulla per SUM().

ops, deve avere

GROUP BY list_items.item.id

alla fine.