Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verbinden von zwei Tabellen in einem 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

Der schwierige Teil sind die beiden Summenaufrufe - Wenn das Abstimmungsfeld 1 ist , dann vote=1 was zu TRUE ausgewertet wird, was MySQL für die Zwecke von SUM() in eine Ganzzahl 1 umwandelt. Wenn es nicht 1 ist, wird es als falsch ausgewertet, was in eine 0 umgewandelt wird und nichts für SUM() tut.

hoppla, muss man haben

GROUP BY list_items.item.id

am Ende.