これを行うには、外部結合が必要です。ちなみに、暗黙的な結合を使用してクエリを作成する方法は古く、推奨されていません。 JOINキーワードの使用をお勧めします。これにより、内部結合を外部結合に簡単に変更することもできます。
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
NULLの代わりに0を返すには、 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
製品がないカテゴリでは、0ではなくデフォルトのNULLを返す方がよいかどうかを検討することもできます。