За да направите това, имате нужда от външно съединение. Между другото, начинът, по който пишете заявката си с имплицитно присъединяване, е остарял и вече не се препоръчва. Препоръчва се използването на ключовата дума JOIN. Това също така улеснява промяната на вътрешно съединение във външно.
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
За да върнете 0 вместо NULL, използвайте IFNULL(..., 0)
. Цялата заявка става:
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
Може също да помислите дали би било по-добре да върнете NULL по подразбиране вместо 0 за категории, които нямат продукти.