Вашият проблем е, че когато имате два (или повече) store
редове и две (или повече) pics
редове за единична goods
ред, в крайна сметка получавате продукта от всички комбинации от редове.
За да поправите това, направете агрегирането си, преди да се присъедините:
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)