K tomu potřebujete vnější spojení. Mimochodem, způsob, jakým píšete dotaz s implicitním spojením, je zastaralý a již se nedoporučuje. Doporučuje se použít klíčové slovo JOIN. To také usnadňuje změnu vnitřního spojení na vnější spojení.
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
Chcete-li vrátit 0 místo NULL, použijte IFNULL(..., 0)
. Celý dotaz se změní na:
SELECT
sc.*,
IFNULL(MIN(s.price), 0) AS minp,
IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
Můžete také zvážit, zda by nebylo lepší vrátit výchozí hodnotu NULL místo 0 pro kategorie, které nemají žádné produkty.