sql >> Database >  >> RDS >> Mysql

Twee tabellen samenvoegen in een 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

Het lastige zijn de twee somoproepen - Als het stemveld 1 . is , dan vote=1 die evalueert naar TRUE, die MySQL zal casten naar een geheel getal 1 voor de doeleinden van de SUM(). Als het niet 1 is, evalueert het naar onwaar, wat naar een 0 wordt gecast en niets doet voor de SUM().

oeps, moet hebben

GROUP BY list_items.item.id

aan het einde.



  1. De Zombie PerfMon-tellers die nooit sterven!

  2. java.sql.SQLException:geen geschikte driver gevonden voor jdbc:microsoft:sqlserver

  3. Automatische verhoging voor Oracle

  4. postgres hernoemen database werkt niet