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

Venstre join, sum og tæl grupper efter

Dit problem er, at når du har to (eller flere) store rækker og to (eller flere) pics rækker for en enkelt goods række, ender du med produktet af alle kombinationerne af rækker.

For at løse dette, lav din aggregering, før du tilmelder dig:

SELECT 
  good.id, 
  good.title, 
  IFNULL(s.storerest, 0) AS storerest, 
  IFNULL(p.picscount, 0) AS picscount
FROM goods 
LEFT JOIN (
  SELECT goodid, sum(rest) AS storerest
  FROM store
  GROUP BY goodid
) s ON (goods.id = s.goodid) 
LEFT JOIN (
  SELECT goodid, count(id) AS picscount
  FROM pics
  GROUP BY goodid
) p ON (goods.id = p.goodid) 


  1. En databasemodel til en onlineundersøgelse. Del 3

  2. 3 måder at få sproget for den aktuelle session i SQL Server (T-SQL)

  3. Alle nyttige 11g Dynamic Performance Views

  4. DAYNAME() Eksempler – MySQL