sql >> Database >  >> RDS >> Mysql

Linker join, som en tel groeperen op

Uw probleem is dat wanneer u twee (of meer) store . heeft rijen en twee (of meer) pics rijen voor een enkele goods rij, je krijgt het product van alle combinaties van rijen.

Om dit op te lossen, aggregeert u voordat u lid wordt:

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. Records van de afgelopen 30 dagen ophalen

  2. Foutcode:1822. Kan de beperking van de externe sleutel niet toevoegen. Ontbrekende index voor beperking 'ekdromes_ibfk_1' in de tabel 'pwlhseis' waarnaar wordt verwezen

  3. Regex-patroon in de functie SQL Replace?

  4. Like In MySQL gebruiken voor zoekbewerkingen met Pattern