sql >> Databasteknik >  >> RDS >> Mysql

Sammanfoga två bord i en 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

Det knepiga är de två summanropen - Om röstfältet är 1 , sedan vote=1 som utvärderas till TRUE, vilket MySQL kommer att casta till ett heltal 1 för SUM(). Om det inte är 1, evalueras det till false som kastas till en 0 och gör ingenting för SUM().

Hoppsan, måste ha

GROUP BY list_items.item.id

på slutet.



  1. att använda mysql LOAD-statment i PHP misslyckas, men att göra det via kommandoraden fungerar

  2. Allvarligt fel:Klass 'Swift_smtpTransport' hittades inte i

  3. Laravel classloader.php fel kunde inte öppna ström:Ingen sådan fil eller katalog

  4. Anslutningspoolning i .NET/SQL-server?