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)