i have a query that selects multiple values from the same table in sub query
SELECT ...,
(
SELECT IFNULL(SUM(pts), 0)
FROM grades
WHERE s.id = student
) AS spts,
(
SELECT IFNULL(SUM(mat), 0)
FROM grades
WHERE s.id = student
) AS smat,
(
SELECT IFNULL(SUM(bio), 0)
FROM grades
WHERE s.id = student
)AS sbio
FROM ...
its working perfectly now but i think it can be optimized into one sub query instead of 3.
what i tried
SELECT ...,
(
SELECT IFNULL(SUM(pts), 0) AS spts, IFNULL(SUM(mat), 0) AS smat, IFNULL(SUM(bio), 0) AS sbio
FROM grades
WHERE s.id = student
)
FROM ...
but i keep getting the following error
"message":SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)
expected output
{
"spts": "89",
"smat": "44",
"sbio": "45"
}