Để làm điều này, bạn cần một kết nối bên ngoài. Nhân tiện, cách bạn viết truy vấn của mình với một phép nối ngầm đã lỗi thời và không còn được khuyến nghị nữa. Nên sử dụng từ khóa JOIN. Điều này cũng giúp thay đổi liên kết bên trong thành liên kết ngoài dễ dàng hơn.
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
Để trả về 0 thay vì NULL, hãy sử dụng IFNULL(..., 0)
. Toàn bộ truy vấn trở thành:
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
Bạn cũng có thể muốn cân nhắc nếu trả về giá trị NULL mặc định thay vì 0 cho các danh mục không có sản phẩm sẽ tốt hơn.