For at gøre dette skal du bruge en ydre forbindelse. Den måde, du skriver din forespørgsel på med en implicit joinforbindelse, er i øvrigt forældet og anbefales ikke længere. Det anbefales at bruge JOIN nøgleordet. Dette gør det også lettere at ændre en indre sammenføjning til en ydre sammenføjning.
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
For at returnere 0 i stedet for NULL, brug IFNULL(..., 0) . Hele forespørgslen bliver:
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
Du kan også overveje, om det ville være bedre at returnere standard NULL i stedet for 0 for kategorier, der ikke har nogen produkter.