sql >> Databasteknik >  >> RDS >> Mysql

Vänster gå med, summera och räkna gruppera efter

Ditt problem är att när du har två (eller fler) store rader och två (eller fler) pics rader för en enda goods rad, slutar du med produkten av alla kombinationer av rader.

För att åtgärda detta, gör din aggregering innan du går med:

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. Tidigare Capgemini Executive, Sunitha Ray, går med i ScaleGrid DBaaS för att utöka företagsförsäljningen

  2. Observera:Konvertering av array till sträng i

  3. Hur använder jag en LIKE-klausul i ett SUB-utlåtande?

  4. Massinsättning i MYSQL från XML-filer