Votre problème est que lorsque vous avez deux (ou plus) store
rangées et deux (ou plus) pics
lignes pour un seul goods
ligne, vous vous retrouvez avec le produit de toutes les combinaisons de lignes.
Pour résoudre ce problème, faites votre agrégation avant de rejoindre :
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)