Untuk melakukan ini, Anda memerlukan gabungan luar. Omong-omong, cara Anda menulis kueri dengan gabungan implisit sudah usang dan tidak lagi direkomendasikan. Dianjurkan untuk menggunakan kata kunci JOIN. Ini juga memudahkan untuk mengubah gabungan dalam menjadi gabungan luar.
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
Untuk mengembalikan 0 alih-alih NULL gunakan IFNULL(..., 0)
. Seluruh kueri menjadi:
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
Anda mungkin juga ingin mempertimbangkan apakah akan lebih baik untuk mengembalikan NULL default daripada 0 untuk kategori yang tidak memiliki produk.