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

Sammenføjning af to borde 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

Den vanskelige del er de to sum-kald - hvis stemmefeltet er 1 , derefter vote=1 som evalueres til TRUE, som MySQL vil caste til et heltal 1 med henblik på SUM(). Hvis det ikke er 1, så evalueres det til falsk, som er castet til 0 og ikke gør noget for SUM().

hov, skal have

GROUP BY list_items.item.id

til sidst.



  1. Sådan beskytter du en JDBC-applikation mod SQL-injektion

  2. Forskellen mellem JOIN og INNER JOIN

  3. Introduktion af ny funktion:Always On Availability Group

  4. MySQL vælg, hvor JSON-feltegenskaben har værdi